在 Ubuntu 下,php-fpm 默认是通过 Unix Socket 通信的,但也可以改成监听 TCP 端口。下面分情况说明。
先确认你用的是哪个 PHP 版本(以 8.1 为例):
php -v
配置文件通常在:
/etc/php/8.1/fpm/pool.d/www.conf
(如果是 7.4,就是 /etc/php/7.4/fpm/pool.d/www.conf)
编辑配置文件:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
找到这一行(默认是 socket):
listen = /run/php/php8.1-fpm.sock
改成监听端口,例如 9000:
listen = 127.0.0.1:9000
如果是外网访问(不推荐),可写
0.0.0.0:9000
如果只让本机 Nginx 访问,默认即可。
如果是远程访问,需配置:
listen.allowed_clients = 127.0.0.1
(多个用逗号分隔)
sudo systemctl restart php8.1-fpm
查看是否监听成功:
ss -lntp | grep 9000
或
netstat -lntp | grep 9000
如果你用 Nginx:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
然后:
sudo nginx -t
sudo systemctl reload nginx
| 方式 | 优点 | 场景 |
|---|---|---|
| Unix Socket | 快、安全 | 本机 Nginx + PHP |
| TCP 端口 | 可远程 | 多机 / 容器 |
✅ 本机推荐 Socket
✅ 跨容器 / 跨服务器用端口
如果你用的是 Apache / Docker / 宝塔 / 具体报错,可以告诉我,我给你对应配置。