商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu php-fpm与Nginx如何配置联动

Ubuntu php-fpm与Nginx如何配置联动

  发布于2026-07-07 阅读(0)

扫一扫,手机访问

要在 Ubuntu 上让 PHP-FPM 与 Nginx 顺畅协作,其实核心就几步:安装、配置、测试。下面把整个过程拆开讲明白,遇到坑的地方也会专门提醒。

Ubuntu php-fpm与Nginx如何配置联动

1. 安装PHP-FPM

如果你还没装 PHP-FPM,直接用包管理器搞定就好:

sudo apt update
sudo apt install php-fpm

命令执行后,系统会自动安装对应 PHP 版本的 FPM 组件,比如 PHP 7.4 或 8.x,具体版本看你的源。

2. 配置PHP-FPM

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 配成对应的路径就好。

3. 配置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。

4. 启用站点配置

配置写好之后,需要把它链接到 sites-enabled 目录才能生效:

sudo ln -s /etc/nginx/sites-a vailable/your-site /etc/nginx/sites-enabled/

5. 检查Nginx配置并重启

修改 Nginx 配置后千万别直接重启,先做语法检查:

sudo nginx -t

如果提示 syntax is oktest is successful,再重启 Nginx:

sudo systemctl restart nginx

6. 启动PHP-FPM

确保 PHP-FPM 服务已经跑起来,并且设为开机自启:

sudo systemctl start php7.x-fpm
sudo systemctl enable php7.x-fpm

注意把 php7.x 换成你实际的版本号,比如 php8.1-fpm

7. 测试配置

最后一步,验证整个链路是否通顺。在网站根目录下建一个 info.php 文件:

echo "" | sudo tee /var/www/your-site/info.php

然后在浏览器里访问 http://your-domain.com/info.php,如果能看到 PHP 的详细信息页面,说明 Nginx 和 PHP-FPM 已经成功联动了。

搞完这个测试文件记得及时删除或限制访问权限,毕竟 phpinfo 会暴露很多服务器信息。从实际运维的角度看,这一步看似繁琐,但能把后面调试时遇到的各种 502、404 问题扼杀在摇篮里。

本文转载于:https://www.yisu.com/ask/2845434.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注