提問三步曲: 提問先看教程/FAQ索引(wdcp,wdcp_v3,一鍵包)及搜索,會讓你更快解決問題
1 提供詳細,如系統版本,wdcp版本,軟件版本等及錯誤的詳細信息,貼上論壇或截圖發(fā)論壇
2 做過哪些操作或改動設置等
溫馨提示:信息不詳,很可能會沒人理你!論壇有教程說明的,也可能沒人理!因為,你懂的
[教程] 解決nginx 502 bad gateway問題,[方法]重新編譯wdcp的fpm-php
最近在把joomla 1.5.18的一個站點從虛擬主機的apache移到另一臺VPS主機的nginx上,根據joomla官方提供的nginx rewrite規(guī)則修改了nginx的配置,結果的大部分的網頁都正常顯示,只有一個contact us的頁面在發(fā)送郵件的時候,遇到錯誤:nginx 502 bad gateway
系統環(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)
谷歌百度對以上錯誤的搜索結果都是要修改php.ini,php-fpm.conf,nginx.conf等配置,結果都沒成功
回過頭來好好思考這2個錯誤提示,nginx的錯誤應該是由于nginx提交給php-fpm(127.0.0.1:9000)的請求沒有得到正確的回復引起的,所以可能是php-fpm的問題。
所以想到重新編譯fpm-php,結果成功了
重新編譯過程:
參考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文章,運行如下命令:
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頁面,發(fā)送郵件,成功發(fā)送 |