温馨提示×

ubuntu下php-fpm为何启动失败

小樊
34
2026-06-30 23:11:36
栏目: 编程语言

Ubuntu 下 php-fpm 启动失败,常见原因有不少,下面按出现频率给你一个排查清单,基本能覆盖 90% 的情况。


一、先确认 php-fpm 版本

Ubuntu 上可能同时有多个版本:

ls /etc/php/

常见如:

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

启动命令要对应版本:

sudo systemctl start php8.1-fpm

❌ 错误示例:

systemctl start php-fpm   # 不存在

二、查看启动失败原因(最关键)

1️⃣ systemctl 查看状态

systemctl status php8.1-fpm

重点看:

  • failed
  • 红色报错信息

2️⃣ 查看详细日志(非常重要)

sudo journalctl -xeu php8.1-fpm

或者:

sudo tail -n 50 /var/log/php8.1-fpm.log

日志里通常会直接告诉你错误原因 ✅


三、最常见失败原因及解决办法

✅ 1. 配置文件语法错误(最常见)

sudo php-fpm8.1 -t

❌ 常见错误:

  • ; 少了
  • = 少了
  • pool 文件写错

修复后重启:

sudo systemctl restart php8.1-fpm

✅ 2. 端口 / socket 被占用

错误示例:

ERROR: unable to bind listening socket

检查占用:

sudo netstat -tlnp | grep 9000
# 或
sudo ss -lntp | grep 9000

解决方式:

  • 杀掉占用进程
  • 或修改 /etc/php/8.1/fpm/pool.d/www.conf
listen = /run/php/php8.1-fpm.sock

✅ 3. sock 文件权限问题(Nginx 常见)

Nginx 访问 php-fpm 时失败。

修改权限:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

然后:

sudo systemctl restart php8.1-fpm

✅ 4. 用户/组不存在

错误示例:

ERROR: unable to set uid

检查:

id www-data

不存在就创建:

sudo useradd -r www-data

✅ 5. 内存不足(云服务器常见)

日志中可能出现:

Cannot allocate memory

临时解决:

  • 关闭其他服务
  • 增加 swap

✅ 6. systemd 服务被 mask

systemctl status php8.1-fpm

显示 masked

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

四、快速排查流程(推荐)

# 1. 测试配置
sudo php-fpm8.1 -t

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

# 3. 查看日志
sudo tail -n 50 /var/log/php8.1-fpm.log

五、如果你愿意

你可以直接把以下信息贴出来,我可以 精确告诉你原因

systemctl status php8.1-fpm
php-fpm8.1 -t

或者:

  • Ubuntu 版本
  • PHP 版本
  • 报错日志内容

我可以一步一步帮你定位 ✅

0