温馨提示×

Ubuntu PHP-FPM怎么连接

小樊
45
2026-07-28 01:17:07
栏目: 编程语言

Ubuntu 上,PHP-FPM 本身就是一个 FastCGI 服务,需要 Web 服务器(Nginx / Apache)命令行 来连接它。下面按常见场景给你完整说明。


一、先确认 PHP-FPM 已安装并运行

1️⃣ 安装 PHP-FPM(以 PHP 8.2 为例)

sudo apt update
sudo apt install php8.2-fpm

2️⃣ 检查状态

systemctl status php8.2-fpm

正常应看到:

Active: active (running)

3️⃣ 查看监听方式

grep -R "listen" /etc/php/8.2/fpm/pool.d/www.conf

常见两种:

  • Unix Socket(推荐)
listen = /run/php/php8.2-fpm.sock
  • TCP 端口
listen = 127.0.0.1:9000

二、Nginx 连接 PHP-FPM(最常见 ✅)

1️⃣ 安装 Nginx

sudo apt install nginx

2️⃣ 配置 Nginx

编辑配置文件:

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

✅ Socket 方式(推荐)

server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php index.html;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}

✅ TCP 方式

fastcgi_pass 127.0.0.1:9000;

3️⃣ 重载 Nginx

sudo nginx -t
sudo systemctl reload nginx

4️⃣ 测试 PHP

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

浏览器访问:

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

三、Apache 连接 PHP-FPM

方式一:Proxy FCGI(推荐)

sudo apt install apache2
sudo apt install php8.2-fpm

启用模块:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm

重启:

sudo systemctl restart apache2

四、命令行直接连接 PHP-FPM(了解即可)

PHP-FPM 不支持直接 CLI 连接,CLI 用的是:

php /path/to/file.php

如果你想测试 FastCGI,可用 cgi-fcgi(不常用):

sudo apt install libfcgi0ldbl
SCRIPT_FILENAME=/var/www/html/index.php \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect /run/php/php8.2-fpm.sock

五、常见错误 & 排查

❌ 502 Bad Gateway

ls -l /run/php/php8.2-fpm.sock

Nginx 用户无权限:

sudo chown www-data:www-data /run/php/php8.2-fpm.sock

❌ File not found

SCRIPT_FILENAME 路径错误
root 路径不一致

六、总结一句话

Ubuntu 上 PHP-FPM 不能直接访问,必须由 Nginx / Apache 通过 socket 或 9000 端口连接。


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

  • ✅ 用的是 Nginx 还是 Apache
  • ✅ Ubuntu 版本
  • ✅ 报错信息

我可以帮你精确到 每一步命令级别 配置 ✅

0