没有这样的文件或目录:AH02454:FCGI:尝试连接到 Unix 域套接字 /var/run/php/php5.6-fpm.sock (*) failed
Posted
技术标签:
【中文标题】没有这样的文件或目录:AH02454:FCGI:尝试连接到 Unix 域套接字 /var/run/php/php5.6-fpm.sock (*) failed【英文标题】:No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/run/php/php5.6-fpm.sock (*) failed 【发布时间】:2020-02-10 09:52:31 【问题描述】:我有这样的虚拟主机设置
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
</FilesMatch>
ErrorLog $APACHE_LOG_DIR/error.log
CustomLog $APACHE_LOG_DIR/access.log combined
</VirtualHost>
phpinfo() 显示我的网站有一个 php 5.6 版本。好的!
现在我正在尝试使用 Mod_Ruid2 限制权限。我将以下内容添加到我的虚拟主机中
RDocumentChRoot /var /www/html
<Directory "/www/html/">
Require all granted
RMode config
RUidGid admin0 admin0
</Directory>
尝试访问该站点后,我在日志中看到错误
[Sun Oct 13 16:09:02.492117 2019] [proxy:error] [pid 13571] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/run/php/php5.6-fpm.sock (*) failed
[Sun Oct 13 16:09:02.492194 2019] [proxy_fcgi:error] [pid 13571] [client 192.168.0.110:47622] AH01079: failed to make connection to backend: httpd-UDS
告诉我,我做错了什么?
【问题讨论】:
【参考方案1】:我刚刚在 CentOS 8 上运行 apache(2.4) + php(7.2) 时遇到了同样的问题。
[Thu Jan 09 06:59:10.420499 2020] [proxy:error] [pid 121:tid 139846433412864] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php-fpm/www.sock (*) failed
[Thu Jan 09 06:59:10.420535 2020] [proxy_fcgi:error] [pid 121:tid 139846433412864] [client 127.0.0.1:55580] AH01079: failed to make connection to backend: httpd-UDS
为了解决这个问题,我不得不启动一个名为“php-fpm”的服务(sudo systemctl enable --now php-fpm),这导致了另一个错误:
[09-Jan-2020 07:07:09] ERROR: unable to bind listening socket for address '/run/php-fpm/www.sock': No such file or directory (2)
[09-Jan-2020 07:07:09] ERROR: FPM initialization failed
这是由文件夹 /run/php-fpm 不存在引起的。
mkdir -p /run/php-fpm/
之后,再次启动 php-fpm,这次没有错误,apache+php 就像一个魅力。
请注意,您的错误与我的错误之间存在细微差别,路径略有不同。您应该创建“/var/run/php/”而不是“/run/php-fpm/”。
希望对你有帮助
【讨论】:
【参考方案2】:我遇到了同样的问题,在我的情况下,我可以通过运行代码重新启动 PHP fpm 服务来解决它:
sudo service phpx.x-fpm restart
操作系统:centos 网络服务器:nginx
【讨论】:
【参考方案3】:我在CentOS 8
和Apache 2.4.37
上遇到了同样的问题,经过数小时的互联网研究,我找不到任何适用于 unix 域代理的解决方案。
我不知道这是一个错误还是错误的文档?
为解决此问题,只有您必须将 proxy:unix:/YOUR_PATH
替换为 proxy:unix://YOUR_PATH
。
<FilesMatch \.php$>
SetHandler "proxy:unix:///var/run/php/php5.6-fpm.sock|fcgi://localhost/"
</FilesMatch>
注意:...|fcgi://localhost/
必须存在。
更改此设置后会出现新问题:
File not found.
这个错误很好,因为我们能够从apache
连接到php-fpm
。
我认为这个问题是错误。请看这个链接。
https://bugs.php.net/bug.php?id=55322
为了解决这个问题你必须实现这个结构:
httpd.conf
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/example.com/public_html
#your configs ....
</VirtualHost>
/etc/php-fpm.d/example.com.conf
[example.com]
;your configs...
chroot = /
access.log = /var/www/$pool/logs/phpfpm-access-$pool.log
php_admin_value[open_basedir] = /var/www/$pool/public_html
;your configs...
【讨论】:
添加一个“/”使下一个路径部分对我来说消失:尝试连接到 Unix 域套接字运行/php-fpm/www.sock () 尝试失败 >> 连接到Unix 域套接字 /php-fpm/www.sock () 失败。正确的路径是 /run ... 你之前有 /var,添加 / 删除它,这就是你的路径成为正确路径的原因。如果我了解情况,您已修补了第一个错误。【参考方案4】:我刚刚遇到了同样的问题,我在我的 drupal.con 中评论了这部分代码(可能是你的另一个)
#<FilesMatch \.php$>
# SetHandler proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/
#</FilesMatch>
然后网站就出现了。显然我在这个服务器(redhat 7)上不需要它,但我在我的 CentOS 中需要它用于同一个项目。
【讨论】:
【参考方案5】:请注意,我今天提出了这个问题,我在 serverfault 上找到了解决方案。 pfrenssen的回答具体。请注意,由于 listen.group
和 group
都存在,字段名称让我困惑了一个小时。然后我需要注释掉默认未注释的行listen.acl_users
。需要注意的是,我使用的www-data
用户是我预定义的(非默认)apache 用户。我相信这是根本原因。下面是我改变这些值的一个班轮。首先使用cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.default
来帮助测试,因为sed 修改了文件。
sed -i -e 's/user = apache/user = www-data/g' \
-e 's/group = apache/group = www-data/g' \
-e 's/;listen.owner = nobody/listen.owner = www-data/g' \
-e 's/;listen.group = nobody/listen.group = www-data/g' \
-e 's/;listen.mode = 0660/listen.mode = 0660/g' \
-e 's/listen.acl_users = apache,nginx/;listen.acl_users = apache,nginx/g' /etc/php-fpm.d/www.conf
【讨论】:
以上是关于没有这样的文件或目录:AH02454:FCGI:尝试连接到 Unix 域套接字 /var/run/php/php5.6-fpm.sock (*) failed的主要内容,如果未能解决你的问题,请参考以下文章
apache 虚拟主机(EAI 2)名称或服务未知:AH00547:无法解析主机名
[转帖]linux下使用 du查看某个文件或目录占用磁盘空间的大小
如何为 django 使用 nginx 虚拟服务器 + fcgi?
clang:错误:没有这样的文件或目录:'dynamic_lookup' clang:错误:没有这样的文件或目录:'suppress'