温馨提示×

如何配置ubuntu php-fpm

小樊
34
2026-09-28 13:42:03
栏目: 编程语言

下面按常见 Ubuntu 版本(20.04 / 22.04 / 24.04)系统,说明如何安装、配置和使用 php-fpm。


一、安装 php-fpm

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 PHP 及 php-fpm

以 PHP 8.1 为例(可改为 7.4 / 8.2 / 8.3):

sudo apt install php8.1-fpm php8.1-cli php8.1-common -y

安装完成后,php-fpm 会自动启动。


二、php-fpm 基本管理

查看状态

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-fpm 默认使用 www 池。


四、常见 php-fpm 配置修改

编辑池配置:

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

1. 监听方式(关键)

使用 Unix Socket(推荐,Nginx 常用)

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

或使用 TCP(端口方式)

listen = 127.0.0.1:9000

2. 用户和组

user = www-data
group = www-data

3. 进程管理(性能调优)

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

4. 错误日志

php_admin_value[error_log] = /var/log/php8.1-fpm.log
php_admin_flag[log_errors] = on

修改后重启:

sudo systemctl restart php8.1-fpm

五、与 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-php8.1
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl restart apache2

七、常见问题排查

php-fpm 未启动

journalctl -u php8.1-fpm

权限问题(sock 文件)

确保 Nginx/Apache 用户有访问权限:

ls -l /run/php/

如果你能告诉我:

  • Ubuntu 版本
  • PHP 版本
  • 使用 Nginx 还是 Apache

我可以给你更精确的配置示例。

0 踩