我正在嘗試在 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"
。