温馨提示×

ubuntu php-fpm为何启动失败

小樊
45
2026-09-01 11:20:24
栏目: 编程语言

Ubuntu 上 php-fpm 启动失败 的原因有很多种,下面按常见原因 → 排查方法 → 解决办法给你一个系统性的排查思路。


一、先看错误日志(最重要)

sudo systemctl status php-fpm
sudo journalctl -xe

或者看你 PHP 版本(如 8.1):

sudo systemctl status php8.1-fpm

常见服务名:

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

二、最常见启动失败原因

1️⃣ 端口 / socket 被占用

报错示例:

ERROR: unable to bind listening socket for address '127.0.0.1:9000'

原因:

  • 另一个 php-fpm 已启动
  • nginx 配置冲突

解决:

sudo lsof -i:9000
sudo kill -9 <pid>

或修改 www.conf

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

2️⃣ 配置文件语法错误

报错示例:

ERROR: failed to load configuration file '/etc/php/8.1/fpm/php-fpm.conf'

检查语法:

sudo php-fpm8.1 -t

或:

sudo php-fpm -t

3️⃣ 用户 / 组不存在

报错示例:

ERROR: pool 'www' cannot get uid for user 'www-data'

解决:

id www-data

若不存在:

sudo useradd www-data

4️⃣ 权限问题(sock / pid 目录)

报错示例:

ERROR: unable to create socket /run/php/php8.1-fpm.sock

解决:

sudo mkdir -p /run/php
sudo chown www-data:www-data /run/php

5️⃣ PHP 扩展 / 模块错误

报错示例:

PHP Fatal error: Unable to load dynamic library

解决:

php -m

注释掉有问题的扩展:

sudo vim /etc/php/8.1/fpm/conf.d/xxx.ini

6️⃣ 内存不足(OOM)

日志特征:

php-fpm.service: Main process exited, code=killed, status=9

解决:

  • 降低 pm.max_children
  • 增加服务器内存 / swap

三、快速自检清单 ✅

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

# 2. 查看服务
sudo systemctl restart php8.1-fpm
sudo systemctl status php8.1-fpm

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

四、如果你愿意,我可以精确帮你定位

请把下面信息贴出来:

  1. Ubuntu 版本
  2. PHP 版本
  3. systemctl status php-fpm 的完整输出
  4. /var/log/php*-fpm.log 报错内容

我可以直接告诉你是哪一行配置导致启动失败

0