要排查 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 步查看日志中的错误信息,并根据具体情况进行进一步排查。