四虎影视在线影院在线观看,小s货再浪些再咬紧点h,国产精品水嫩水嫩,97精产国品一二三产区

Board logo

標(biāo)題: [教程] 解決nginx 502 bad gateway問題,[方法]重新編譯wdcp的fpm-php [打印本頁]

作者: shann09    時間: 2013-7-10 00:31     標(biāo)題: 解決nginx 502 bad gateway問題,[方法]重新編譯wdcp的fpm-php

最近在把joomla 1.5.18的一個站點(diǎn)從虛擬主機(jī)的apache移到另一臺VPS主機(jī)的nginx上,根據(jù)joomla官方提供的nginx rewrite規(guī)則修改了nginx的配置,結(jié)果的大部分的網(wǎng)頁都正常顯示,只有一個contact us的頁面在發(fā)送郵件的時候,遇到錯誤:nginx 502 bad gateway

系統(tǒng)環(huán)境:
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)

谷歌百度對以上錯誤的搜索結(jié)果都是要修改php.ini,php-fpm.conf,nginx.conf等配置,結(jié)果都沒成功
回過頭來好好思考這2個錯誤提示,nginx的錯誤應(yīng)該是由于nginx提交給php-fpm(127.0.0.1:9000)的請求沒有得到正確的回復(fù)引起的,所以可能是php-fpm的問題。
所以想到重新編譯fpm-php,結(jié)果成功了

重新編譯過程:
參考wdcp中l(wèi)anmp.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文章,運(yùn)行如下命令:
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選項(xiàng)不生成配置,僅測試是否能通過,通過的話去掉-n,再運(yù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

關(guān)閉原來的php-fpm
/etc/init.d/php-fpm stop

打開新的php-fpm進(jìn)程
/www/wdlinux/php2/sbin/php-fpm

打開contact us頁面,發(fā)送郵件,成功發(fā)送
作者: admin    時間: 2013-7-10 09:16

很好,歡迎后續(xù)反饋下運(yùn)行情況
作者: shann09    時間: 2013-7-11 09:52

補(bǔ)充下:
如果要讓機(jī)器運(yùn)行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

關(guān)于wdcp的注意事項(xiàng):
1.在wdcp的8080端口管理后臺里面,在nginx模式,apache模式和nginx+apache模式之間切換的時候,有2個配置目錄會被刪除,然后重新建立默認(rèn)配置文件:
/www/wdlinux/apache/conf/vhost 和 /www/wdlinux/nginx/conf/vhost
所以要備份好這2個文件夾,切換模式后馬上把這2個文件夾還原回去,重啟下服務(wù),否則丟失了辛辛苦苦修改好的配置文件。。。

2.還有/www/wdlinux/etc/php.ini實(shí)際上是一個鏈接,如果是nginx模式,就鏈接到/www/wdlinux/nginx_php/etc/php.ini
如果切換到apache模式,就自動修改鏈接到/www/wdlinux/apache_php/etc/php.ini。但是,根據(jù)實(shí)際運(yùn)行+個人猜測(還看不太懂php),由于php-fpm的init啟動文件已經(jīng)被鏈接到新編譯的php,而切換模式的時候wdcp并沒有自動去修改這個init啟動文件,所以php-fpm的啟動過程只會經(jīng)過我們新編譯的php,忽略舊的那個php。
所以安裝多個php是能夠共存的。如果還想切換會原來的apache的話,一定不要刪除舊的php。
作者: jumpsky    時間: 2013-7-13 12:25

文章寫的很好  可是我沒看懂怎么修改的  時不時就遇到過502
作者: shann09    時間: 2013-7-16 15:57

回復(fù) 4# jumpsky

nginx本身沒有處理php程序,它只是把這些php程序交給php-fpm來處理

php-fpm就是開啟一個進(jìn)程,監(jiān)聽9000端口,所以你啟動php-fpm后用netstat -tulnp會看到多出一個
監(jiān)聽127.0.0.1:9000的進(jìn)程,當(dāng)收到nginx的請求后,它會處理php程序,并返回結(jié)果給nginx


就我出現(xiàn)的502問題,是wd自帶的php-fpm無法正確處理nginx傳過來的請求,
所以:重新編譯php-fpm,并且開啟這個新編譯的fpm來監(jiān)聽127.0.0.1:9000
作者: jjma    時間: 2013-12-14 09:38

親測不行,。果斷放棄,教程寫的很不好,再參考張宴大哥的那篇nginx文章,運(yùn)行如下命令:
tar zxf php-5.4.13.tar.gz
cd php-5.4.13
我們安裝之前選擇的都不是5.4,然后后面當(dāng)然就直接斷了
作者: kideny    時間: 2013-12-25 20:03

我的網(wǎng)站www.yuandekai.com使用wordpress建立,在插件和自動更新的php頁面,都會出現(xiàn)502的錯誤,極度蛋疼。
作者: fh466@126.com    時間: 2014-2-20 19:10

回復(fù) 7# kideny

我的也是這塊,wp最新版本出現(xiàn)這個問題,3.1版本的沒有
作者: wuyouseo    時間: 2014-3-30 22:52

我的網(wǎng)站www.yuandekai.com使用wordpress建立,在插件和自動更新的php頁面,都會出現(xiàn)502的錯誤,極度蛋疼。
kideny 發(fā)表于 2013-12-25 20:03


我跟你一樣遇到這個502問題也是WP博客。論壇問了N遍 沒有人給個解決辦法。你的解決了沒有?
作者: amazon_abc    時間: 2015-12-15 12:53

樓主分析的不到位吧? 我按照樓主的方法試了還是不行。   論壇里面有好多帖子都講到 解決wdcp 2.5的 php 502問題了。 這個帖子可以參考 http://cd-genova.com/bbs/redire ... 0&fromuid=28321
作者: xiaochuan    時間: 2016-11-13 18:00

解決方法文章地址:
http://cd-genova.com/bbs/thread-54858-1-1.html




歡迎光臨 WDlinux官方論壇 (http://cd-genova.com/bbs/) Powered by Discuz! 7.2