无标题文档
WDCDN联

盟内部测试火热进行中
wdCP系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdCDN系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
wdOS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdDNS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
注册 发贴 提问 回复-必看必看 wddns免费智能 DNS 开通 本地或虚拟机使 用wdcp 一键包在mysql编 译时"卡住"
【300G高防】双线 无视攻击 wdcp官方技术支持/服务 阿里云8折优惠券 无敌云 腾讯云优惠中,现注册更有260代金额券赠送
返回列表 发帖
提问三步曲: 提问先看教程/FAQ索引(wdcp,wdcp_v3,一键包)及搜索,会让你更快解决问题
1 提供详细,如系统版本,wdcp版本,软件版本等及错误的详细信息,贴上论坛或截图发论坛
2 做过哪些操作或改动设置等

温馨提示:信息不详,很可能会没人理你!论坛有教程说明的,也可能没人理!因为,你懂的

[教程] 解决nginx 502 bad gateway问题,[方法]重新编译wdcp的fpm-php

最近在把joomla 1.5.18的一个站点从虚拟主机的apache移到另一台VPS主机的nginx上,根据joomla官方提供的nginx rewrite规则修改了nginx的配置,结果的大部分的网页都正常显示,只有一个contact us的页面在发送邮件的时候,遇到错误:nginx 502 bad gateway

系统环境:
CentOS 6.4 86x64
wdcp: wget http://dl.wdlinux.cn:5180/lanmp_laster.tar.gz
0c5d80fd4b28b7049d18275962f1fc09  lanmp_laster.tar.gz
nginx 1.0.15
mysql 5.1.63
php 5.2.17

有2条错误比较引人注意:
tail /www/wdlinux/nginx_php-5.2.17/logs/php-fpm.log
[WARNING] fpm_children_bury(), line 215: child 16523 (pool default) exited on signal 15 SIGTERM after 1868.423609 seconds from start
tail /www/wdlinux/nginx/logs/error.log

[error] 16501#0: *5 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 123.456.789, server: www.shop-yishunbike.com, request: "POST /index.php?option=com_contact&view=contact&id=1&Itemid=210 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "............", referrer: "........................."

用site:()搜索:

site:(wdlinux.cn) recv() failed (104: Connection reset by peer)

谷歌百度对以上错误的搜索结果都是要修改php.ini,php-fpm.conf,nginx.conf等配置,结果都没成功
回过头来好好思考这2个错误提示,nginx的错误应该是由于nginx提交给php-fpm(127.0.0.1:9000)的请求没有得到正确的回复引起的,所以可能是php-fpm的问题。
所以想到重新编译fpm-php,结果成功了

重新编译过程:
参考wdcp中lanmp.sh脚本的安装路径:
./configure --prefix=$IN_DIR/$PHP_DIR --with-config-file-path=$IN_DIR/$PHP_DIR/etc --with-mysql=$IN_DIR/mysql --with-iconv=/usr --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt=/usr --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-ftp --enable-sockets --enable-zip $NV


再参考张宴大哥的那篇nginx文章,运行如下命令:
tar zxf php-5.4.13.tar.gz
cd php-5.4.13
LIBS="-lm -ltermcap -lresolv"DYLD_LIBRARY_PATH="/www/wdlinux/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"
LD_LIBRARY_PATH="/www/wdlinux/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"

#./configure阶段,在后面加上-n选项不生成配置,仅测试是否能通过,通过的话去掉-n,再运行一次


./configure --prefix=/www/wdlinux/php2 --with-config-file-path=/www/wdlinux/php2/etc --with-mysql=/www/wdlinux/mysql --with-mysqli=/www/wdlinux/mysql/bin/mysql_config --with-mcrypt=/usr --with-iconv-dir=/usr --with-libxml-dir=/usr --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap -n
make ZEND_EXTRA_LIBS='-liconv'
make install

关闭原来的php-fpm
/etc/init.d/php-fpm stop

打开新的php-fpm进程
/www/wdlinux/php2/sbin/php-fpm

打开contact us页面,发送邮件,成功发送
学无止境

很好,欢迎后续反馈下运行情况
看清提问三步曲及多看教程/FAQ索引(wdcp,v3,一键包,wdOS),益处多多.wdcp工具集 阿里云主机8折优惠码

TOP

补充下:
如果要让机器运行magento,还要给php安装pdo_mysql插件:

cd php-5.4.13/ext/pdo_mysql/
/www/wdlinux/php2/bin/phpize
./configure --with-php-config=/www/wdlinux/php2/bin/php-config --with-pdo-mysql=/www/wdlinux/mysql
make && make install
cd ../../..

配置php.ini,添加下面的语句
vim /www/wdlinux/php2/etc/php.ini
extension_dir = "/www/wdlinux/php2/lib/php/extensions/no-debug-non-zts-20100525/"
extension = "pdo_mysql.so"
cgi.fix_pathinfo=0
always_populate_raw_post_data = On

关于wdcp的注意事项:
1.在wdcp的8080端口管理后台里面,在nginx模式,apache模式和nginx+apache模式之间切换的时候,有2个配置目录会被删除,然后重新建立默认配置文件:
/www/wdlinux/apache/conf/vhost 和 /www/wdlinux/nginx/conf/vhost
所以要备份好这2个文件夹,切换模式后马上把这2个文件夹还原回去,重启下服务,否则丢失了辛辛苦苦修改好的配置文件。。。

2.还有/www/wdlinux/etc/php.ini实际上是一个链接,如果是nginx模式,就链接到/www/wdlinux/nginx_php/etc/php.ini
如果切换到apache模式,就自动修改链接到/www/wdlinux/apache_php/etc/php.ini。但是,根据实际运行+个人猜测(还看不太懂php),由于php-fpm的init启动文件已经被链接到新编译的php,而切换模式的时候wdcp并没有自动去修改这个init启动文件,所以php-fpm的启动过程只会经过我们新编译的php,忽略旧的那个php。
所以安装多个php是能够共存的。如果还想切换会原来的apache的话,一定不要删除旧的php。
学无止境

TOP

文章写的很好  可是我没看懂怎么修改的  时不时就遇到过502
http://www.b2b888.com

TOP

回复 4# jumpsky

nginx本身没有处理php程序,它只是把这些php程序交给php-fpm来处理

php-fpm就是开启一个进程,监听9000端口,所以你启动php-fpm后用netstat -tulnp会看到多出一个
监听127.0.0.1:9000的进程,当收到nginx的请求后,它会处理php程序,并返回结果给nginx


就我出现的502问题,是wd自带的php-fpm无法正确处理nginx传过来的请求,
所以:重新编译php-fpm,并且开启这个新编译的fpm来监听127.0.0.1:9000
学无止境

TOP

亲测不行,。果断放弃,教程写的很不好,再参考张宴大哥的那篇nginx文章,运行如下命令:
tar zxf php-5.4.13.tar.gz
cd php-5.4.13
我们安装之前选择的都不是5.4,然后后面当然就直接断了

TOP

我的网站www.yuandekai.com使用wordpress建立,在插件和自动更新的php页面,都会出现502的错误,极度蛋疼。
百度搜“上海千鸣网络”

TOP

回复 7# kideny

我的也是这块,wp最新版本出现这个问题,3.1版本的没有

TOP

我的网站www.yuandekai.com使用wordpress建立,在插件和自动更新的php页面,都会出现502的错误,极度蛋疼。
kideny 发表于 2013-12-25 20:03


我跟你一样遇到这个502问题也是WP博客。论坛问了N遍 没有人给个解决办法。你的解决了没有?

TOP

楼主分析的不到位吧? 我按照楼主的方法试了还是不行。   论坛里面有好多帖子都讲到 解决wdcp 2.5的 php 502问题了。 这个帖子可以参考 http://www.wdlinux.cn/bbs/redire ... 0&fromuid=28321

TOP

TOP

返回列表