要排查 Ubuntu 上 PHP-FPM 啟動失敗的問題,請按照以下步驟操作:
查看日志文件:
PHP-FPM 的錯誤日志通常位于 /var/log/php-fpm.log
或 /var/log/php7.x-fpm.log
(其中 x 是 PHP 版本號)。使用以下命令查看日志內容:
sudo tail -f /var/log/php-fpm.log
或
sudo tail -f /var/log/php7.x-fpm.log
觀察日志中的錯誤信息,以便了解啟動失敗的原因。
檢查配置文件:
確保 PHP-FPM 配置文件(通常位于 /etc/php/7.x/fpm/php-fpm.conf
或 /etc/php/7.x/fpm/pool.d/www.conf
)中的設置正確。特別關注以下設置:
listen
:確保監聽地址和端口正確。user
和 group
:確保 PHP-FPM 以正確的用戶和組身份運行。pm
:確保進程管理器(process manager)設置正確,例如 dynamic
、static
或 ondemand
。pm.max_children
、pm.start_servers
、pm.min_spare_servers
和 pm.max_spare_servers
:確保這些設置合理,以便根據服務器資源啟動足夠數量的 PHP-FPM 進程。檢查端口沖突: 使用以下命令檢查 PHP-FPM 監聽的端口是否已被其他進程占用:
sudo netstat -tuln | grep <listen_port>
其中 <listen_port>
是 PHP-FPM 配置文件中的 listen
設置。如果端口已被占用,請停止占用端口的進程或更改 PHP-FPM 的監聽端口。
檢查文件權限: 確保 PHP-FPM 相關文件和目錄的權限設置正確。特別是以下文件和目錄:
/etc/php/7.x/fpm/php-fpm.conf
或 /etc/php/7.x/fpm/pool.d/www.conf
/var/run/php/php7.x-fpm.pid
/var/log/php-fpm.log
或 /var/log/php7.x-fpm.log
使用 chmod
和 chown
命令調整文件和目錄的權限和所有權。
重啟 PHP-FPM: 在進行上述更改后,嘗試重啟 PHP-FPM 服務:
sudo systemctl restart php7.x-fpm
其中 7.x
是 PHP 版本號。然后檢查服務狀態:
sudo systemctl status php7.x-fpm
如果服務已成功啟動,問題應該已解決。如果仍然遇到問題,請返回第 1 步查看日志中的錯誤信息,并根據具體情況進行進一步排查。