温馨提示×

php-fpm在ubuntu上为何报错

小樊
44
2026-06-30 23:19:33
栏目: 编程语言

在 Ubuntu 上 php-fpm 报错 的原因很多,常见原因集中在 配置错误、权限问题、端口/套接字冲突、PHP 版本不匹配 等。下面我按最常见 → 较少见的顺序给你一个排查清单,你可以对照看。


一、最常见原因汇总(90% 都在这里)

1️⃣ php-fpm 服务没启动 / 启动失败

systemctl status php-fpm
# 或 Ubuntu 常见名称
systemctl status php8.1-fpm

常见错误:

  • failed to start
  • could not bind to address

✅ 解决:

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

2️⃣ 监听端口 / sock 文件冲突

Ubuntu 默认使用 Unix socket

listen = /run/php/php8.1-fpm.sock

常见错误日志:

ERROR: unable to bind listening socket
ERROR: failed to listen

✅ 检查:

ls -l /run/php/

✅ 解决:

  • 端口被占用 → 改端口
  • sock 文件不存在 → 重启 php-fpm
sudo systemctl restart php8.1-fpm

3️⃣ Nginx / Apache 配置错误(最常见)

Nginx 示例(错误写法)

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)

4️⃣ 权限问题(sock 文件)

错误示例:

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

5️⃣ PHP 配置文件语法错误

php-fpm8.1 -t

常见错误:

syntax error, unexpected '='

✅ 检查:

sudo php-fpm8.1 -t

二、Ubuntu 特有的坑

6️⃣ 多个 PHP 版本冲突

Ubuntu 常见:

  • php7.4-fpm
  • php8.1-fpm
  • php8.2-fpm

✅ 查看已安装:

dpkg -l | grep php

✅ 查看哪个在运行:

ps aux | grep fpm

7️⃣ 日志路径不存在

错误:

ERROR: failed to open error_log

✅ 检查:

error_log = /var/log/php8.1-fpm.log
ls /var/log/php*

三、快速定位错误(强烈推荐)

✅ 1. 看 php-fpm 日志

tail -f /var/log/php8.1-fpm.log

✅ 2. 看 systemd 错误

journalctl -u php8.1-fpm -xe

✅ 3. 测试配置

sudo php-fpm8.1 -t

四、如果你愿意,我可以直接帮你定位

你可以直接贴出:

1️⃣ 报错信息(完整)
2️⃣ Ubuntu 版本

lsb_release -a

3️⃣ PHP 版本

php -v

4️⃣ Nginx / Apache 配置(相关部分)

我可以 直接告诉你第几行错了,怎么改

0