-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
502 bad gateway error! ubuntu 16.04lts nginx 2, yaf 3.0.4 #337
Comments
提供一个解决思路
|
@motecshine 谢谢你的回复
php -S localhost:8000 我没有用过php cli的这种server,即便这样操作行,对我来说,没有什么意义 再次感谢你的回复 |
502的话, 看看是不是php coredump了, 如果是, 就看看backtrace是啥, 贴出来 |
哇,鸟哥大神出来了 我core dump不会,有朋友让我用strace试,我按照这个里面的操作http://blog.csdn.net/leonpengweicn/article/details/50331455 root@ubuntu: |
重新编译了一个新版PHP不会报502,运行正常。 |
@ipersi 可能通过sudo apt-get install php7.0-fpm这种方式搞的环境,yaf的clearbody都不行,我apt-get update, upgrade把php从7.0.9升级到7.0.13,还是报502 bad gateway |
关于如何得到coredump, 看这个: http://bugs.php.net/bugs-generating-backtrace.php |
php7.1.3 debug模式下,clearBody会core dump. release下正常。 我的环境: |
Today we meet the same problem. The minimal reproduce code $res = $this->yafResponse;
$res->setHeader('Content-Type', $contentType, false, $responseCode);
$res->setBody($content);
$res->response();
$res->clearBody();
$res->clearHeaders(); Seems
before |
ping @laruence , May you please fix this ? |
看上去类似 if (name) { 这样的判断需要修改 if (name && name != NULL && ZSTR_LEN(name) > 0) { |
或者 去掉 $res->clearBody(); |
我也遇到这个问题。不过很奇怪,同一个服务器,有的项目没问题。有的有。 [7506527.060672] php-fpm[27396]: segfault at 38933544 ip 0000000000859704 sp 00007ffd1fb3c170 error 4 in php-fpm[400000+b06000] 00000000008596f0 <zend_hash_del>: 发现是xhprof开启就会有这个问 |
下面的服务器环境都是用apt-get命令搭建的,本人不太会编译安装。
1、用的是ubuntu 16.04lts server版,先update upgrade到最新(apt-get update, apt-get upgrade)
2、用以下命令安装lnmp
sudo apt-get install nginx
sudo apt-get install mysql-server mysql-client
sudo apt-get install php7.0-fpm
3、修改php.ini配置(否则nginx不解析php)
php7.0配置 /etc/php/7.0/fpm/php.ini
cgi.fix_pathinfo=0
重启service php7.0-fpm reload
4、配置的virtualhost (附件里面找到,在/etc/nginx/sites-available里面放入附件的www.jobsfan.com虚拟机配置,然后在sites-enable里面建个软连接,后重启nginx)
nginx配置默认的虚拟机配置以支持php /etc/nginx/sites-available/www.jobsfan.com
server {
listen 80;
listen [::]:80;
}
重启service nginx reload
5、pecl安装yaf,先安装phpize
sudo apt-get install php7.0-dev
pecl install yaf
6、修改cli和pfm下的php.ini,加入extension=yaf.so
至此环境已经搭建完成
===============下面是yaf部分的关键代码=========================
/opt/www/www.jobsfan.com/application/plugins 下面的Layout.php
`<?php
class LayoutPlugin extends Yaf_Plugin_Abstract
{
private $_layoutDir;
private $_layoutFile;
private $_layoutVars = array();
}
`
自然在/opt/www/www.jobsfan.com/application 下面的Bootstrap.php中加入
`public function _initPlugin(Yaf_Dispatcher $dispatcher)
{
$userPlugin = new UserPlugin();
$dispatcher->registerPlugin($userPlugin);
你host到服务器ip到www.jobsfan.com之后,就可以看到502 bad gateway的错误了。奇怪的是,当你把plugins里面的Layout.php中的$response->clearBody();exit('989898');这一句注释或者删除,就立马什么错误都没有了。
我看到issue里面有个502错误,但是和我的情况不太一样#229
最后总结一句,就是$response->clearBody();这句报错。这个到底是php7和yaf3不兼容呢,还是环境出了挂,如果是环境出了挂,应该怎么修正的。希望鸟哥有空看一下。
The text was updated successfully, but these errors were encountered: