1. 程式人生 > >LNMP環境出現502 Bad Gateway報錯

LNMP環境出現502 Bad Gateway報錯

config wget def tar.gz ons curl eve -m exif

環境:

centos 6.9
php-5.2.14
nginx 1.15

故障現象:

配置好LNMP環境後,phpinfo能夠正常打開

1.web訪問HTTPS異常
站點頁面訪問正常,但是跳轉https時,出現502 Bad Gateway

2、php-fpm log
fpm_children_bury(), line 215: child 8460 (pool default) exited on signal 11 SIGSEGV (core dumped)

3、nginx error log
2018/09/21 15:52:29 [error] 2463#0: *36 recv() failed (104: Connection reset by peer) while reading response header from upstream

故障排查

在centos 6.9的系統裏面的curl支持的https是nss版本的,而不是openssl的,
因為php環境原因,必須使用openssl

解決方法:

根據鏈接裏面說的,去官網下載了一個最新版本(curl-7.28.1.tar.gz)的curl,來進行源碼編譯。
編譯的依賴,openssl和openssl-devel。
編譯方法和其他軟件類似,步驟如下:
去到源碼目錄:curl-7.28.1
./configure --without-nss --with-ssl && make &&make install 即可完成編譯。

1、系統的curl生成

wget http://curl.haxx.se/download/curl-7.35.0.tar.gz

tar -zxvf curl-7.35.0.tar.gz
cd curl-7.35.0.tar.gz

cd /www/src/curl-7.39.0
./configure --prefix=/usr/local/curl --without-nss --with-ssl
make && make install

備份默認的curl二進制文件
sudo mv /usr/bin/curl /usr/bin/curl.bak
然後做一個新的curl軟鏈
sudo ln -s /usr/local/curl/bin/curl /usr/bin/curl

然後再curl --version確認是否已經是openssl的版本

2、生成curl.so

cd /www/src/lanmp/php-5.2.17/ext/curl
/www/wdlinux/php/bin/phpize
./configure --with-php-config=/www/wdlinux/php/bin/php-config --with-curl=/usr/local/curl/

make && make install

3、重新編譯php(php.ini找出原先的配置參數,復制,去掉with-curl,然後編譯

cd /www/src/lanmp/php-5.2.17/

./configure ‘--prefix=/www/wdlinux/apache_php-5.2.17‘ ‘--with-config-file-path=/www/wdlinux/apache_php-5.2.17/etc‘ ‘--with-mysql=/www/wdlinux/mysql‘ ‘--with-iconv=/usr‘ ‘--with-mysqli=/www/wdlinux/mysql/bin/mysql_config‘ ‘--with-pdo-mysql=/www/wdlinux/mysql‘ ‘--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‘ ‘--enable-mbregex‘ ‘--enable-mbstring‘ ‘--with-mcrypt=/usr‘ ‘--with-gd‘ ‘--enable-gd-native-ttf‘ ‘--with-openssl‘ ‘--with-mhash‘ ‘--enable-ftp‘ ‘--enable-bcmath‘ ‘--enable-exif‘ ‘--enable-sockets‘ ‘--enable-zip‘ ‘--with-apxs2=/www/wdlinux/apache/bin/apxs‘

4、編譯完後,在php.ini裏增加

extension=curl.so

重啟php-fpm即可

本問題感謝:https://www.cnblogs.com/showker/p/4706271.html Showker筆記支持

LNMP環境出現502 Bad Gateway報錯