温馨提示×

php-fpm在ubuntu如何设置

小樊
45
2026-08-12 09:34:10
栏目: 编程语言

Ubuntu 上设置 PHP-FPM,通常按下面步骤来即可(以 PHP 8.1 为例,其他版本同理)。


一、安装 PHP-FPM

sudo apt update
sudo apt install php-fpm

如果你需要指定版本(例如 PHP 8.2):

sudo apt install php8.2-fpm

安装完成后,服务名通常是:

php-fpm
# 或
php8.1-fpm

二、查看 PHP-FPM 运行状态

sudo systemctl status php8.1-fpm

启动 / 停止 / 重启:

sudo systemctl start php8.1-fpm
sudo systemctl stop php8.1-fpm
sudo systemctl restart php8.1-fpm

设置开机自启:

sudo systemctl enable php8.1-fpm

三、PHP-FPM 主要配置文件路径

作用 路径
主配置 /etc/php/8.1/fpm/php-fpm.conf
池配置 /etc/php/8.1/fpm/pool.d/www.conf
PHP 配置 /etc/php/8.1/fpm/php.ini

四、配置 PHP-FPM 池(常用)

编辑池配置:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

1️⃣ 监听方式(重要)

Unix Socket(推荐)

listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

TCP(不推荐,除非跨服务器)

listen = 127.0.0.1:9000

2️⃣ 进程管理(性能调优)

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

如果是 高并发站点,可改为:

pm = ondemand
pm.max_children = 100

3️⃣ 用户和组

user = www-data
group = www-data

五、配合 Nginx 使用(最常见)

Nginx 配置示例

server {
    listen 80;
    server_name example.com;
    root /var/www/html;

    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

测试并重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

六、配合 Apache 使用(可选)

sudo apt install libapache2-mod-fcgid
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl restart apache2

七、验证 PHP-FPM 是否生效

创建测试文件:

echo "<?php phpinfo();" | sudo tee /var/www/html/info.php

访问:

http://服务器IP/info.php

看到 Server API = FPM/FastCGI 即成功 ✅


八、常见问题排查

502 Bad Gateway

  • socket 路径不一致
  • nginx 用户无权限访问 sock
  • PHP-FPM 未启动

查看日志:

sudo tail -f /var/log/php8.1-fpm.log
sudo tail -f /var/log/nginx/error.log

如果你愿意,我可以帮你:

  • ✅ 针对 高并发 / 低内存 VPS 优化 PHP-FPM
  • ✅ 配置 多站点多池
  • ✅ 排查 502 / 504 错误
  • ✅ Docker 中的 PHP-FPM 配置

直接告诉我你的 Ubuntu 版本 + PHP 版本 + Web 服务器 即可。

0