在 Ubuntu 上 php-fpm 报错 的原因很多,常见原因集中在 配置错误、权限问题、端口/套接字冲突、PHP 版本不匹配 等。下面我按最常见 → 较少见的顺序给你一个排查清单,你可以对照看。
systemctl status php-fpm
# 或 Ubuntu 常见名称
systemctl status php8.1-fpm
常见错误:
failed to startcould not bind to address✅ 解决:
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
Ubuntu 默认使用 Unix socket:
listen = /run/php/php8.1-fpm.sock
常见错误日志:
ERROR: unable to bind listening socket
ERROR: failed to listen
✅ 检查:
ls -l /run/php/
✅ 解决:
sudo systemctl restart php8.1-fpm
fastcgi_pass 127.0.0.1:9000;
但 php-fpm 实际用的是 sock:
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
✅ 检查 Nginx 错误日志:
tail -f /var/log/nginx/error.log
常见报错:
connect() failed (111: Connection refused)
错误示例:
Permission denied
✅ 解决:
sudo chown www-data:www-data /run/php/php8.1-fpm.sock
或 php-fpm 池配置:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
php-fpm8.1 -t
常见错误:
syntax error, unexpected '='
✅ 检查:
sudo php-fpm8.1 -t
Ubuntu 常见:
✅ 查看已安装:
dpkg -l | grep php
✅ 查看哪个在运行:
ps aux | grep fpm
错误:
ERROR: failed to open error_log
✅ 检查:
error_log = /var/log/php8.1-fpm.log
ls /var/log/php*
tail -f /var/log/php8.1-fpm.log
journalctl -u php8.1-fpm -xe
sudo php-fpm8.1 -t
你可以直接贴出:
1️⃣ 报错信息(完整)
2️⃣ Ubuntu 版本
lsb_release -a
3️⃣ PHP 版本
php -v
4️⃣ Nginx / Apache 配置(相关部分)
我可以 直接告诉你第几行错了,怎么改 ✅