Ubuntu 上 PHP-FPM 启动失败 常见原因有很多,下面按「最常见 → 较少见」给你一个排查清单,基本照着做就能定位问题。
sudo systemctl status php-fpm
sudo journalctl -xe
或者(版本不同路径不同):
sudo tail -n 50 /var/log/php*-fpm.log
常见报错示例:
Unable to open log filepool www cannot be startedaddress already in usepermission deniedUbuntu 上服务名是带版本的,例如:
php7.4-fpm
php8.1-fpm
php8.2-fpm
✅ 正确:
sudo systemctl start php8.1-fpm
❌ 错误:
systemctl start php-fpm # Ubuntu 里通常不存在
错误示例:
ERROR: unable to bind listening socket
检查:
sudo netstat -tunlp | grep 9000
解决:
www.conf:listen = /run/php/php8.1-fpm.sock
sudo php-fpm8.1 -t
如果有错误,会直接提示哪一行。
错误示例:
pool www: unable to set uid
检查:
id www-data
PHP-FPM 默认用户:
user = www-data
group = www-data
sudo mkdir -p /run/php
sudo chown -R www-data:www-data /run/php
Ubuntu 重启后 /run 是 tmpfs,可能目录不存在。
解决(systemd 会自动建,但手动装的可能不会):
sudo systemctl restart php8.1-fpm
php-fpm8.1 -t
systemctl status php8.1-fpm
journalctl -xe
请把下面信息贴出来:
systemctl status php*-fpm 输出我可以直接告诉你具体是哪一行配置或权限问题。