下面按常见 Ubuntu 版本(20.04 / 22.04 / 24.04)系统,说明如何安装、配置和使用 php-fpm。
sudo apt update
sudo apt upgrade -y
以 PHP 8.1 为例(可改为 7.4 / 8.2 / 8.3):
sudo apt install php8.1-fpm php8.1-cli php8.1-common -y
安装完成后,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
/etc/php/8.1/fpm/php-fpm.conf
/etc/php/8.1/fpm/pool.d/www.conf
php-fpm 默认使用 www 池。
编辑池配置:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
listen = /run/php/php8.1-fpm.sock
listen = 127.0.0.1:9000
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
php_admin_value[error_log] = /var/log/php8.1-fpm.log
php_admin_flag[log_errors] = on
修改后重启:
sudo systemctl restart php8.1-fpm
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
sudo apt install libapache2-mod-php8.1
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl restart apache2
journalctl -u php8.1-fpm
确保 Nginx/Apache 用户有访问权限:
ls -l /run/php/
如果你能告诉我:
我可以给你更精确的配置示例。