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

V4n*_*ll4 3 unix sockets nginx gitweb

我正在尝试在我的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"`
Run Code Online (Sandbox Code Playgroud)

我检查了所有者/权限,似乎一切都很好.

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
Run Code Online (Sandbox Code Playgroud)

任何想法可能是什么问题?

alv*_*its 8

套接字必须是客户端和服务器可读写的.假设服务器正在运行,www-data并且客户端forge与组一样运行forge,以下步骤应解决问题.

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

chgrp forge /var/run/fcgiwrap.socket
Run Code Online (Sandbox Code Playgroud)

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

chmod g+w /var/run/fcgiwrap.socket
Run Code Online (Sandbox Code Playgroud)

套接字现在可由服务器和客户端读写.