首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP错误503 -试图连接到Unix域套接字失败

PHP错误503 -试图连接到Unix域套接字失败
EN

Server Fault用户
提问于 2018-02-17 16:55:39
回答 6查看 50.8K关注 0票数 5

我在服务器上出现了这个错误(CentOs 7):

代码语言:javascript
运行
复制
[proxy:debug] proxy_util.c(2209): [client 80.251.245.153:61902] AH00944: connecting fcgi://127.0.0.1/data/webs/dev/index.php to 127.0.0.1:8000
[proxy:debug] proxy_util.c(2246): [client 80.251.245.153:61902] AH02545: fcgi: has determined UDS as /tmp/php56-fpm.sock
[proxy:debug] proxy_util.c(2418): [client 80.251.245.153:61902] AH00947: connected /data/webs/dev/index.php to httpd-UDS:0
[proxy:error] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /tmp/php56-fpm.sock (*) failed
[proxy_fcgi:error] AH01079: failed to make connection to backend: httpd-UDS
[proxy:debug] proxy_util.c(2171): AH00943: FCGI: has released connection for (*)

套接字存在时,我尝试将权限更改为777,但无法工作:

代码语言:javascript
运行
复制
 ls -l /tmp/php56-fpm.sock
-rw-rw----. 1 apache apache 0 Feb 17 16:11 /tmp/php56-fpm.sock

PHP www.conf侦听设置(完整文件在这里:https://pastebin.com/uD5GsMna):

听=/tmp/php56 56-fpm.sock

Virtualhost:

代码语言:javascript
运行
复制
<VirtualHost *:80>
   ServerName dev.stavebninyfranek.com
   DocumentRoot "/data/webs/dev"
   <FilesMatch "\.php$">
     SetHandler  "proxy:unix:/tmp/php56-fpm.sock|fcgi://127.0.0.1"
   </FilesMatch> 
 </VirtualHost>

我的配置文件是(httpd.conf):https://pastebin.com/XS6cDuFQ

我尝试更改套接字,将权限更改为apache:apache用户,但我不知道哪里有问题。

谢谢

EN

回答 6

Server Fault用户

发布于 2019-04-02 10:21:41

这可能是由Apache上的systemd配置引起的,例如,在Centos 7上,服务默认配置如下:

代码语言:javascript
运行
复制
PrivateTmp=true

这意味着它在/tmp中以/tmp的形式获得自己的子目录,因此它看不到其他程序添加的/tmp中的文件。解决方案是不对php套接字使用/tmp (比将上面设置为false更安全)。

(我意识到至少在一种情况下使用了Debian导数,但它也使用了systemd!)

保利。

票数 3
EN

Server Fault用户

发布于 2019-03-29 11:41:03

在将apache从2.4.10更新到2.4.24之后,我也遇到了同样的问题。对于旧的apache,与fcgi的连接使用/tmp中的套接字,而新的apache提供了错误的(2)No such file or directory。将套接字移动到/var/run解决了这个问题。

查看mod_proxy的源代码,我发现在较新的apache上,路径应该相对于指定为DefaultRuntimeDir的路径。在我的配置中,这是在/etc/apache2/apache2.conf中设置的,它还使用了来自/etc/apache2/envvars的一些定义。

票数 1
EN

Server Fault用户

发布于 2020-02-27 07:18:52

将用户和组更改为当前的apache用户。

代码语言:javascript
运行
复制
/etc/php-fpm.d/www.conf 

**用户和组在/etc/http/conf/http.conf中必须相同

然后执行

代码语言:javascript
运行
复制
chown -R user.user /run/php-fpm/www.conf

**更改为您的用户

我相信以上是为centOS,因为我是一个Debian的家伙。这实际上是由php8 sock权限问题引起的“503错误服务不可用”问题的解决方案之一。因此,您在apache的袜子将位于:

chown -R user.user /var/run/php/php8.1-fpm.sock

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/897691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档