排查Linux上的php-fpm故障可以按照以下步驟進行:
檢查php-fpm服務狀態:
使用命令 systemctl status php-fpm 檢查php-fpm服務是否正在運行。如果服務未運行,可以使用以下命令啟動它:sudo systemctl start php-fpm。若想讓php-fpm開機自動啟動,可以執行:sudo systemctl enable php-fpm。
查看php-fpm進程:
使用命令 ps -ef | grep php-fpm 查找php-fpm的進程,確認服務是否已啟動。
檢查監聽端口:
使用命令 netstat -plnt | grep php-fpm 或針對Unix套接字使用 ls -l /var/run/php/php-fpm.sock 確認php-fpm是否正在監聽正確的套接字或端口。
查看日志文件:
php-fpm的日志文件通常位于 /var/log/php-fpm/error.log。使用命令 sudo tail -f /var/log/php-fpm/error.log 查看錯誤日志的最新內容,實時更新。
分析日志: 日志文件包含請求詳細信息(時間、URI、狀態代碼)、錯誤消息、性能指標和配置參數。通過檢查日志,可以了解php-fpm的行為并解決任何問題。
檢查配置文件:
打開php-fpm的配置文件,通常位于 /etc/php-fpm.conf 或 /etc/php-fpm.d/ 目錄下。查找和日志相關的參數,通常是 error_log 和 access.log 等。
使用strace進行調試(可選):
安裝 strace 并使用它來跟蹤php-fpm進程。例如:sudo strace -f -ff -t -d -p PID,其中PID是php-fpm進程的ID。
重啟php-fpm服務:
保存并關閉配置文件,然后使用命令 sudo systemctl restart php-fpm 重啟php-fpm服務,以使配置文件生效。
檢查系統資源:
使用 top 或 htop 命令查看CPU、內存和磁盤I/O等資源使用情況。使用 df -h 檢查磁盤空間是否充足。
檢查Nginx或Apache錯誤日志:
如果php-fpm服務運行正常,但網站仍然出現問題,可能是Nginx或Apache服務器的錯誤。檢查Nginx或Apache的錯誤日志,通常位于 /var/log/nginx/error.log 或 /var/log/apache2/error.log。
通過以上步驟,可以系統地排查php-fpm故障,快速定位并解決問題。如果問題依然存在,請提供具體的錯誤信息,以便進一步分析。