診斷Ubuntu PHP-FPM的錯誤可以通過以下幾個步驟進行:
檢查PHP-FPM服務狀態:
使用 systemctl
命令查看服務的狀態:
sudo systemctl status php7.0-fpm
如果服務未運行,會顯示類似“inactive (dead)”的信息。
檢查PHP-FPM進程是否存在:
使用 pgrep
命令查找PHP-FPM的進程:
pgrep php7.0-fpm
如果PHP-FPM未運行,這條命令不會列出任何進程號。
查看監聽端口:
使用 netstat
或 ss
命令確認PHP-FPM是否正在監聽正確的套接字或端口:
netstat -plnt | grep php7.0-fpm
或者針對Unix套接字:
ls -l /var/run/php/php7.0-fpm.sock
訪問PHP-FPM狀態頁面(如果已啟用):
在php-fpm配置文件中啟用了狀態頁面,可以通過瀏覽器訪問:
http://localhost/status_page
這里的 /status_page
對應配置文件中 pm.status_path
設置的路徑。
查看日志文件:
檢查PHP-FPM的日志文件,以了解是否有錯誤或警告信息:
less +F /var/log/php7.0-fpm.log
根據具體配置定位日志文件的位置。
使用 strace
進行調試:
安裝 strace
并使用它來跟蹤PHP-FPM進程:
sudo apt install strace
strace -f -ff -t -d -p <PID>
其中 <PID>
是PHP-FPM進程的ID。
檢查配置文件:
確認PHP-FPM的配置文件(通常位于 /etc/php/X.X/fpm/pool.d/www.conf
)是否有錯誤,例如監聽地址、端口配置等。
重啟PHP-FPM服務:
如果服務未啟動或配置有變,可以使用以下命令重啟PHP-FPM服務:
sudo systemctl restart php7.0-fpm
若想讓它開機自動啟動,可以執行:
sudo systemctl enable php7.0-fpm
通過以上步驟,可以診斷并解決Ubuntu系統中PHP-FPM的常見錯誤。如果問題依然存在,建議查看具體的錯誤日志文件,以便進一步分析問題所在。