发布于2026-07-07 阅读(0)
扫一扫,手机访问
要在 Ubuntu 上让 PHP-FPM 与 Nginx 顺畅协作,其实核心就几步:安装、配置、测试。下面把整个过程拆开讲明白,遇到坑的地方也会专门提醒。

如果你还没装 PHP-FPM,直接用包管理器搞定就好:
sudo apt update
sudo apt install php-fpm
命令执行后,系统会自动安装对应 PHP 版本的 FPM 组件,比如 PHP 7.4 或 8.x,具体版本看你的源。
PHP-FPM 的默认配置一般在 /etc/php/<版本号>/fpm/pool.d/www.conf 里。你需要根据实际场景决定是用 Unix socket 还是 TCP 端口通信。比方说,想改成 TCP 监听 9000 端口:
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
找到下面这行:
;listen = /run/php/php7.x-fpm.sock
改成:
listen = 127.0.0.1:9000
当然,如果你更习惯 Unix socket 的高效,保持默认也行,后面 Nginx 配成对应的路径就好。
接下来是重头戏——让 Nginx 知道怎么把 PHP 请求扔给 FPM 处理。编辑你的站点配置文件,通常位于 /etc/nginx/sites-a vailable/你的站点:
sudo nano /etc/nginx/sites-a vailable/your-site
把下面的核心区块粘进去(注意替换成你自己的域名和路径):
server {
listen 80;
server_name your-domain.com www.your-domain.com;
root /var/www/your-site;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.x-fpm.sock; # 如果之前改成了TCP,这里就改成 127.0.0.1:9000
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
需要留意的是,如果你在 PHP-FPM 里用的是 TCP 监听,那这里的 fastcgi_pass 就要改成 127.0.0.1:9000,反之亦然。保持两边的通信方式一致,否则 Nginx 连不上 FPM 会报 502。
配置写好之后,需要把它链接到 sites-enabled 目录才能生效:
sudo ln -s /etc/nginx/sites-a vailable/your-site /etc/nginx/sites-enabled/
修改 Nginx 配置后千万别直接重启,先做语法检查:
sudo nginx -t
如果提示 syntax is ok 且 test is successful,再重启 Nginx:
sudo systemctl restart nginx
确保 PHP-FPM 服务已经跑起来,并且设为开机自启:
sudo systemctl start php7.x-fpm
sudo systemctl enable php7.x-fpm
注意把 php7.x 换成你实际的版本号,比如 php8.1-fpm。
最后一步,验证整个链路是否通顺。在网站根目录下建一个 info.php 文件:
echo "" | sudo tee /var/www/your-site/info.php
然后在浏览器里访问 http://your-domain.com/info.php,如果能看到 PHP 的详细信息页面,说明 Nginx 和 PHP-FPM 已经成功联动了。
搞完这个测试文件记得及时删除或限制访问权限,毕竟 phpinfo 会暴露很多服务器信息。从实际运维的角度看,这一步看似繁琐,但能把后面调试时遇到的各种 502、404 问题扼杀在摇篮里。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8