我正在尝试在 FreeBSD 上设置 nginx 和 cgit,但 nginx 无法访问/var/run/fcgiwrap/fcgiwrap.sock
.
在我的中,/etc/rc.conf
我已经设置了fcgiwrap_user="www"
,也是www
nginx 运行的用户。
当我通过表演fcgiwrap.sock
而拥有时,一切都会按照我想要的方式进行。www
chown www /var/run/fcgiwrap/fcgiwrap.sock
然而,这当然不是执行此操作的正确方法,并且它只会持续到重新启动为止。
我假设环境fcgiwrap_user="www"
也会决定这一点。
我错过了什么吗?
更新:
我注意到当我使用service fcgiwrap start
or时restart
,消息Starting fcgiwrap
后面跟着chmod: /var/run/fcgiwrap/fcgiwrap.sock: No such file or directory
。但/var/run/fcgiwrap/fcgiwrap.sock
之后确实存在。
答案1
RC 脚本位于/usr/local/etc/rc.d/fcgiwrap
.
查看代码,fcgiwrap_user
设置运行守护程序的进程的所有者(默认root
)。
您需要设置fcgiwrap_socket_owner="www"
来设置套接字的所有者。
答案2
理查德·史密斯的答案也对我有用,但就我而言,我也必须设置fcgiwrap_socket_group="www"
。这些设置似乎是新的,因为之前设置就足够了fcgiwrap_user="www"
。