没有这样的文件或目录:AH02454:FCGI:尝试连接到Unix域socket /var/run/php/php5.6-fpm.sock(*)失败

3okqufwl  于 2023-05-27  发布在  PHP
关注(0)|答案(6)|浏览(224)

我有这样的虚拟主机设置

<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

告诉我,我哪里做错了?

mccptt67

mccptt671#

我在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 --现在是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/”。
希望这个能帮上忙

i7uaboj4

i7uaboj42#

我遇到了同样的问题,在我的情况下,我可以通过重新启动PHP fpm服务来修复它,通过运行代码:
sudo service phpx.x-fpm restart
操作系统:Centos nginx

j2cgzkjk

j2cgzkjk3#

我在CentOS 8Apache 2.4.37上也遇到了同样问题,经过几个小时的互联网研究,我找不到任何解决方案。
我不知道这是一个错误或坏的文件?

要解决此问题只需要将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
我认为这个问题是bug。请看这个链接。
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...
cuxqih21

cuxqih214#

我也遇到过同样的问题,我在我的drupal.con(可能是另一个)中注解了这部分代码

#<FilesMatch \.php$>
#    SetHandler proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/
#</FilesMatch>

网站刚刚出现。显然我在这个serveur(redhat 7)上不需要它,但我在我的CentOS中需要它来做同一个项目。

iyfjxgzm

iyfjxgzm5#

请注意,我今天遇到了这个问题,我在serverfault上找到了解决方案。pfrenssen的具体回答。请注意,字段名称让我困惑了一个小时,因为listen.groupgroup都存在。然后我需要注解掉一行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
wz1wpwve

wz1wpwve6#

要在php5.4-fpm下运行php脚本,必须安装php5.4-fpm。
在Ubuntu 22.04上,它可以使用:

sudo apt install php5.6 php5.6-fpm -y

相关问题