温馨提示×

ubuntu php fpm怎么配置

小樊
33
2026-09-04 12:46:34
栏目: 编程语言

在 Ubuntu 上配置 PHP-FPM(FastCGI Process Manager)通常用于配合 Nginx 或 Apache 运行 PHP。下面以 Ubuntu 20.04/22.04 + Nginx + PHP 8.x 为例,系统讲一遍配置流程。


一、安装 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 版本:

php -v

PHP-FPM 服务名通常是:

php8.1-fpm

(版本号按实际安装为准)


二、PHP-FPM 基本目录结构

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

主要配置文件:

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

三、配置 PHP-FPM Pool(www.conf)

编辑:

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

常用配置说明

[www]
user = www-data
group = www-data

listen = /run/php/php8.1-fpm.sock
; 或用端口方式
; listen = 127.0.0.1:9000

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

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. 站点配置示例

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    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;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

五、Apache 使用 PHP-FPM(可选)

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

六、常用管理命令

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

# 重启
systemctl restart php8.1-fpm

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

七、常见问题

1. 502 Bad Gateway

  • socket 路径不一致
  • Nginx 用户无权限
  • PHP-FPM 未运行

2. 权限问题

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

3. 多版本 PHP

update-alternatives --set php /usr/bin/php8.1

如果你用的是 特定 Ubuntu 版本 / Nginx / Apache / 宝塔 / Docker,可以告诉我,我可以给你更精确的配置。

0