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