You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多虚拟主机环境下PHP-FPM仅生成单个Socket文件的问题求助

多虚拟主机环境下PHP-FPM仅生成单个Socket文件的问题求助

各位大佬好,我最近在配置Nginx+PHP8.1-FPM的多虚拟主机环境时遇到了一个棘手的问题,想请大家帮忙排查下:

我给每个虚拟主机都配置了独立的域名、系统用户、网站根目录,同时为每个站点单独创建了PHP-FPM池配置文件。举个例子,其中一个站点的FPM池配置(/etc/php/8.1/fpm/pool.d/domain.com.conf)内容如下:

user = domainuser
group = domainuser
listen = /var/run/php/php8.1-domain.com-fpm.sock

对应的Nginx虚拟主机配置(/etc/nginx/sites-available/domain.com.vhost)是这样的:

server {
    listen 80;
    listen [::]:80;

    root /var/www/domain.com;
    index index.php index.html index.htm;

    server_name domain.com www.domain.com;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.1-domain.com-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    access_log /var/log/nginx/domain.com.access.log;
    error_log /var/log/nginx/domain.com.error.log;
}

所有站点的配置逻辑都是一致的,只是替换了对应的域名、用户名、Socket路径和根目录。而且我已经把每个站点的系统用户都添加到了www-data组里。

现在的问题是:当我执行ls -l /var/run/php查看Socket文件时,发现只有一个站点的Socket文件存在,其他5个站点的Socket完全缺失,命令输出如下:

srw-rw---- 1 www-data www-data 0 Oct 29 12:48 php8.1-domain.com-fpm.sock

访问那些缺失Socket的站点时,Nginx会抛出如下错误:

2023/10/29 12:56:50 [crit] 627#627: *3 connect() to unix:/var/run/php/php8.1-domain.com-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 20.163.15.11, server: domain.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.1-domain.com-fpm.sock:", host: "domain.com"

我已经重启过PHP-FPM和Nginx好几次了,但问题依然存在。有没有大佬能帮我分析下可能的原因,或者给出排查方向?

备注:内容来源于stack exchange,提问作者Dev Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:33:05