温馨提示×

Ubuntu PHP-FPM为何报错

小樊
42
2026-07-13 20:18:30
栏目: 编程语言

Ubuntu 下 PHP-FPM 报错 的原因很多,常见集中在 配置错误、端口/套接字冲突、权限问题、PHP 版本不匹配 等。下面我按最常见场景给你一个排查清单,并附上典型报错 + 解决方法。你可以对照看看。


一、最常见报错 & 解决方案

1️⃣ connect() to unix:/run/php/php-fpm.sock failed (No such file or directory)

原因

  • PHP-FPM 没启动
  • sock 文件路径不对
  • Nginx / Apache 路径写错

排查

ls /run/php/

解决

sudo systemctl start php-fpm
# 或指定版本
sudo systemctl start php8.2-fpm

Nginx 配置应匹配:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

2️⃣ Address already in use / unable to bind listening socket

原因

  • PHP-FPM 已运行
  • 端口冲突(9000)

解决

sudo systemctl stop php8.2-fpm
sudo systemctl start php8.2-fpm

或检查端口:

ss -lntp | grep 9000

3️⃣ ERROR: failed to open configuration file

原因

  • php-fpm.conf 路径错误
  • 配置语法错误

排查

sudo php-fpm8.2 -t

✅ 正常应显示:

configuration file /etc/php/8.2/fpm/php-fpm.conf test is successful

4️⃣ Permission denied(sock 文件)

典型报错

connect() to unix:/run/php/php8.2-fpm.sock failed (13: Permission denied)

原因

  • Nginx 用户无权访问 sock

解决 编辑:

sudo vim /etc/php/8.2/fpm/pool.d/www.conf

确认:

user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data

然后:

sudo systemctl restart php8.2-fpm

5️⃣ unknown entry 'php_value'php_admin_value

原因

  • 在 PHP-FPM 的 pool 里用了 Apache 的指令

错误示例

php_value upload_max_filesize 20M

解决 改为:

php_admin_value[upload_max_filesize] = 20M

6️⃣ PHP 版本不匹配(Ubuntu 常见)

现象

  • apt 装了 php8.1 / 8.2 / 8.3
  • Nginx 却指向错误版本

查看已安装版本

ls /etc/php/

查看运行状态

systemctl status php*-fpm

二、快速通用排查流程(强烈推荐)

# 1. 查看 PHP-FPM 状态
systemctl status php8.2-fpm

# 2. 查看错误日志
tail -n 50 /var/log/php8.2-fpm.log

# 3. 查看 Nginx 错误日志
tail -n 50 /var/log/nginx/error.log

# 4. 测试配置
php-fpm8.2 -t

三、Ubuntu 常见路径速查

项目 路径
PHP-FPM 配置 /etc/php/*/fpm/
Pool 配置 /etc/php/*/fpm/pool.d/www.conf
sock 文件 /run/php/php*-fpm.sock
错误日志 /var/log/php*-fpm.log
Nginx 站点 /etc/nginx/sites-enabled/

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

你可以直接贴出:

  1. 完整报错信息
  2. 使用的 Ubuntu 版本
  3. PHP 版本(php -v
  4. Web 服务(Nginx / Apache)
  5. systemctl status php-fpm 输出

我可以 精确告诉你哪一行配置错了

0