下面给你一份在 Ubuntu 上配置 PHP-FPM 的完整常见做法,适用于 Nginx + PHP-FPM(最常见场景)。如果你用的是 Apache,也可以告诉我,我可以单独说明。
sudo apt update
以 PHP 8.2 为例(可按需换成 8.1 / 8.3):
sudo apt install php8.2-fpm php8.2-cli php8.2-common \
php8.2-mysql php8.2-curl php8.2-mbstring php8.2-xml
安装完成后,PHP-FPM 会自动启动。
/etc/php/8.2/fpm/
主要文件:
/etc/php/8.2/fpm/php-fpm.conf/etc/php/8.2/fpm/pool.d/www.conf编辑:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
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
如果是高并发站点,可适当调大
pm.max_children
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
sudo systemctl restart php8.2-fpm
sudo systemctl status php8.2-fpm
创建测试文件:
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
看到 PHP 信息页面即成功 ✅
检查:
ls -l /run/php/php8.2-fpm.sock
sudo systemctl reload php8.2-fpm
sudo systemctl reload nginx
pm = ondemand(低流量服务器)sudo apt install php8.2-opcache
pm.max_children,避免内存耗尽如果你愿意,可以告诉我:
我可以给你更精确的配置方案。