Freebsd

如何配置哪個使用者 fcgiwrap 在 FreeBSD 上執行?

  • January 14, 2019

我在 FreeBSD 9.3 的監獄中執行 Redmine/Git/nginx/fcgiwrap,用於(可能)通過 HTTP/S 進行身份驗證的 Git 送出。一切正常,直到我重新啟動監獄。

為了使送出生效,我需要手動/var/run/fcgiwrap/fcgiwrap.sock從更改srwxr-xr-x root:wheelsrwxrwxr-x root:www.

似乎應該有更好的方法來做到這一點,以便它在重新啟動時持續存在。我的感覺是應該有某種方式告訴 fcgiwrap 以誰的身份執行,但我無法確定在 FreeBSD 上指定的位置。

手冊頁說:

很可能您會希望使用如下配置通過 spawn-fcgi 啟動 fcgiwrap:

FCGI_SOCKET=/var/run/fcgiwrap.sock
FCGI_PROGRAM=/usr/sbin/fcgiwrap
FCGI_USER=nginx
FCGI_GROUP=www
FCGI_EXTRA_OPTIONS="-M 0700"
ALLOWED_ENV="PATH"

基於這個問題,我一直在/usr/local/etc/rc.d尋找spawn-fcgi但它不存在,我認為這意味著它沒有安裝。安裝 spawn-fcgi 只是為了管理誰執行 fcgiwrap 似乎也有點過頭了。

我發現/usr/local/etc/rc.d/fcgiwrap裡面說:

# fcgiwrap rc.d script supports multiple profiles (a-la rc.d/nginx)
# When profiles are specified, the non-profile specific parameters become defaults.
# You need to make sure that no two profiles have the same socket parameter.

什麼是配置文件,我將如何為此 rc.d 腳本創建一個配置文件?或者我是不是走錯了路?

好的。沒關係。我比我想像的更接近解決方案。通讀BSD 中的實用 rc.d 腳本,我只需要添加fcgiwrap_user="www"/etc/rc.conf.

引用自:https://unix.stackexchange.com/questions/227705