Nginx connect() 到 unix:/var/run/fcgiwrap.socket 失败

Nginx connect() to unix:/var/run/fcgiwrap.socket failed

我正在尝试在我的 Nginx 服务器上安装 Gitweb。一切似乎都配置正确,但我似乎在 gitweb.log:

中收到以下错误
`2015/06/08 08:42:05 [crit] 29135#0: *5 connect() to unix:/var/run/fcgiwrap.socket failed (13: Permission denied) while connecting to upstream, client: 83.36.85.6, server: git.mydomain.co.uk, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "git.mydomain.co.uk"`

我检查了 owner/permissions 似乎一切正常。

srwxr-xr-x 1 www-data www-data 0 Jun 8 08:44 /var/run/fcgiwrap.socket

ps aux | grep nginx的输出是:

root     30283  0.0  0.0  90552  1296 ?        Ss   08:59   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
forge    30284  0.0  0.0  90884  1924 ?        S    08:59   0:00 nginx: worker process                           
forge    30285  0.0  0.1  90884  2408 ?        S    08:59   0:00 nginx: worker process                           
root     30528  0.0  0.0  11980   928 pts/0    R+   09:03   0:00 grep --color=auto nginx

知道问题出在哪里吗?

套接字必须对客户端和服务器都是可读和可写的。假设服务器是 运行 as www-data 并且客户端是 运行 as forge with group forge,以下步骤应该可以解决这个问题。

将套接字的组所有权更改为用户组forge

chgrp forge /var/run/fcgiwrap.socket

更改群组权限以允许写入群组 forge

chmod g+w /var/run/fcgiwrap.socket

套接字现在可以被服务器和客户端读取和写入。