520BadGateway錯誤解決辦法

服務器環境:linux+nginx+php+mysql俗稱的LNMP

首先,介紹我出現這個錯誤的時候的調試過程:

1,懷疑數據庫連接出現問題,因爲兩個需要連接數據庫的項目出現問題,其餘不需要連接數據庫的反而沒有出現問題
2,根據error.log定位到php-fpm。網上也有很多說502是因爲php-fpm配置出現問題
3,systemctl status php-fpm.service,php-fpm不能正常運行,原因在於 Failed to start The PHP FastCGI Process
4,定位錯誤至FastCGI Process
5,netstat -anpo | grep “php-cgi” | wc -l,顯示爲0,即FastCGI Process未能啓動
6,未能生成/run/php-fpm/php-fpm.pid
7,通過該命令啓動php-fpm:/usr/sbin/php-fpm,錯誤提示:ERROR: [/etc/php-fpm.d/www.conf:412] unknown directive ':php_flag'
8,突然想到之前配置文件爲了開啓php錯誤提示功能,我修改過php_flag這個參數

9,通過查找配置文件/etc/php-fpm.d/www.conf發現是自己之前誤將註釋符號;寫成:了

10,修改回來,重啓nginx服務,訪問網頁發現錯誤已經解決了

總結,502錯誤往往是由於:NGINX 502 Bad Gateway錯誤是FastCGI有問題,而FastCGI又和php-fpm密切相關。

調試該類錯誤會需要用到的命令:

命令一:
#測試php-fpm配置
/usr/local/php/sbin/php-fpm -t
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t
 
#啓動php-fpm
/usr/local/php/sbin/php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
 
#關閉php-fpm
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
 
#重啓php-fpm
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`




命令二:
重啓或重載nginx,和php-fpm
service php-fpm restart


service nginx restart


命令三:
顯示FastCGI Process數量
netstat -anpo | grep “php-cgi” | wc -l等其餘netstat命令配合使用,用於診斷錯誤原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章