温馨提示×

ubuntu php-fpm怎么连接nginx

小樊
49
2026-09-01 11:23:23
栏目: 编程语言

在 Ubuntu 上让 PHP-FPM 连接 Nginx,核心是通过 FastCGI(Unix Socket 或 TCP) 通信。下面给你一个最常见、可用的配置流程。


一、安装 Nginx 和 PHP-FPM

sudo apt update
sudo apt install nginx php-fpm

查看 PHP 版本(以 8.1 为例):

php -v

PHP-FPM 服务名一般是:

php8.1-fpm

二、确认 PHP-FPM 监听方式

方式 1:Unix Socket(推荐)

查看配置:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

确认这一行(默认就是):

listen = /run/php/php8.1-fpm.sock

重启 PHP-FPM:

sudo systemctl restart php8.1-fpm

三、配置 Nginx 连接 PHP-FPM

编辑你的站点配置:

sudo nano /etc/nginx/sites-available/default

示例配置(Unix Socket)

server {
    listen 80;
    server_name localhost;
    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.1-fpm.sock;
    }
}

四、测试 PHP 是否正常工作

创建测试文件:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

浏览器访问:

http://服务器IP/info.php

看到 PHP 信息页即成功 ✅


五、(可选)使用 TCP 方式连接

PHP-FPM 配置

listen = 127.0.0.1:9000

Nginx 配置

fastcgi_pass 127.0.0.1:9000;

六、常见问题排查

1. 502 Bad Gateway

  • PHP-FPM 没启动
  • socket 路径写错
  • 权限问题(www-data)

2. 文件不存在

  • root 路径错误
  • try_files 没写

3. 查看日志

sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/php8.1-fpm.log

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • PHP 版本
  • 是否用 Docker / 局域网 / 云服务器

我可以给你更精确的配置。

0 踩