在 Ubuntu 上配置 PHP-FPM(FastCGI Process Manager)通常用于配合 Nginx 或 Apache 运行 PHP。下面以 Ubuntu 20.04/22.04 + Nginx + PHP 8.x 为例,系统讲一遍配置流程。
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
(版本号按实际安装为准)
/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编辑:
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
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
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
sudo chown -R www-data:www-data /var/www
update-alternatives --set php /usr/bin/php8.1
如果你用的是 特定 Ubuntu 版本 / Nginx / Apache / 宝塔 / Docker,可以告诉我,我可以给你更精确的配置。