在 Ubuntu 上,PHP-FPM 本身就是一个 FastCGI 服务,需要 Web 服务器(Nginx / Apache) 或 命令行 来连接它。下面按常见场景给你完整说明。
sudo apt update
sudo apt install php8.2-fpm
systemctl status php8.2-fpm
正常应看到:
Active: active (running)
grep -R "listen" /etc/php/8.2/fpm/pool.d/www.conf
常见两种:
listen = /run/php/php8.2-fpm.sock
listen = 127.0.0.1:9000
sudo apt install nginx
编辑配置文件:
sudo nano /etc/nginx/sites-available/default
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;
}
}
fastcgi_pass 127.0.0.1:9000;
sudo nginx -t
sudo systemctl reload nginx
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
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 不支持直接 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
ls -l /run/php/php8.2-fpm.sock
Nginx 用户无权限:
sudo chown www-data:www-data /run/php/php8.2-fpm.sock
SCRIPT_FILENAME 路径错误
root 路径不一致
Ubuntu 上 PHP-FPM 不能直接访问,必须由 Nginx / Apache 通过 socket 或 9000 端口连接。
如果你愿意,可以告诉我:
我可以帮你精确到 每一步命令级别 配置 ✅