我在 FreeBSD 9.3 上的监狱中运行了 Redmine/Git/nginx/fcgiwrap,用于(可能)通过 HTTP/S 进行身份验证的 Git 提交。一切正常,直到我重新启动监狱。
为了使提交工作,我需要手动/var/run/fcgiwrap/fcgiwrap.sock
从更改srwxr-xr-x root:wheel
为srwxrwxr-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 脚本创建一个配置文件?还是我以错误的方式处理这一切?
答案1
好的。没关系。我比我想象的更接近解决方案。通读BSD 中的实用 rc.d 脚本我只需要添加fcgiwrap_user="www"
到/etc/rc.conf
.