温馨提示×

ubuntu php-fpm怎样配置

小樊
57
2026-09-07 11:05:39
栏目: 编程语言

下面按最常见的 Ubuntu + Nginx + PHP-FPM场景,给你一份从安装到配置的完整说明(以 PHP 8.1 为例,其他版本同理)。


一、安装 PHP-FPM

sudo apt update
sudo apt install php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-zip

安装完成后,PHP-FPM 服务一般会自动启动。

查看版本:

php -v

二、PHP-FPM 服务管理

PHP-FPM 在 Ubuntu 中是以 systemd 服务方式运行的:

# 启动
sudo systemctl start php8.1-fpm

# 开机自启
sudo systemctl enable php8.1-fpm

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

# 重启
sudo systemctl restart php8.1-fpm

三、PHP-FPM 配置文件位置

主要目录:

/etc/php/8.1/
├── fpm/
│   ├── php-fpm.conf
│   ├── pool.d/
│   │   └── www.conf
└── cli/
    └── php.ini

常用配置说明

1️⃣ 主配置(一般不用改)

/etc/php/8.1/fpm/php-fpm.conf

2️⃣ 进程池配置(重点)

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

常见参数:

user = www-data
group = www-data

listen = /run/php/php8.1-fpm.sock
; 或监听端口
; listen = 127.0.0.1:9000

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

修改后重启:

sudo systemctl restart php8.1-fpm

四、Nginx 配置 PHP-FPM

1️⃣ 使用 Unix Socket(推荐)

Nginx 站点配置示例:

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

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

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

    location ~ /\.ht {
        deny all;
    }
}

2️⃣ 使用 TCP 端口(不推荐但简单)

fastcgi_pass 127.0.0.1:9000;

并修改 www.conf:

listen = 127.0.0.1:9000

五、测试 PHP 是否正常工作

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

浏览器访问:

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

看到 PHP 信息页即配置成功。

⚠️ 测试完建议删除:

sudo rm /var/www/html/info.php

六、常见问题排查

1️⃣ 502 Bad Gateway

  • Nginx 的 fastcgi_pass 路径不对
  • PHP-FPM 没启动
  • sock 文件权限不对

检查:

ls -l /run/php/
sudo systemctl status php8.1-fpm

2️⃣ 文件权限问题

网站目录建议:

sudo chown -R www-data:www-data /var/www/html

如果你用的是 Apache + PHP-FPM 或 Docker / LNMP 面板,或者想做 多版本 PHP 共存,可以告诉我,我给你对应方案。

0 踩