Mercurial在系统启动时不启动[FreeBSD 9.0 Apache22]

Mercurial在系统启动时不启动[FreeBSD 9.0 Apache22],apache,mercurial,apache2,freebsd,Apache,Mercurial,Apache2,Freebsd,努力寻找Apache22和mercurial问题的根源。一切似乎都正常工作-创建正确的存储库、正确配置hgweb.cgi的文件夹、设置权限等 主要问题来了。只有使用/usr/local/etc/rc.d/apache22 restart手动(重新)启动Apache,否则,使用服务apache22 restart或在整个系统启动时,我才能启动并运行Apache并访问网站。但一旦尝试访问web界面,它会在浏览器中显示“内部服务器错误”,并在http Error.log中显示下一条消息 [Fri Ap

努力寻找Apache22和mercurial问题的根源。一切似乎都正常工作-创建正确的存储库、正确配置hgweb.cgi的文件夹、设置权限等

主要问题来了。只有使用
/usr/local/etc/rc.d/apache22 restart
手动(重新)启动Apache,否则,使用
服务apache22 restart
或在整个系统启动时,我才能启动并运行Apache并访问网站。但一旦尝试访问web界面,它会在浏览器中显示“内部服务器错误”,并在
http Error.log中显示下一条消息

[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] env: 
[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] python
[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] : 
[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] No such file or directory
[Fri Apr 20 17:49:40 2012] [error] [client 10.20.30.34] Premature end of script headers: hgweb.cgi

我的猜测是,这可能是环境变量的问题,但是
服务
运行和从
/usr/local/rc.d/
直接调用脚本之间有什么区别呢?我遗漏了什么吗?

检查路径,看起来python不在您的路径中。也许将/usr/local/bin添加到www用户的路径

解决方案实际上是让运行httpd的用户(www在我的例子中)调整$path。但这对每个人来说可能都不明显,所以我做了以下几点:

已创建/usr/local/etc/apache22/envvars.d/path.env及其内容

#!/bin/bash
export PATH=$PATH:/usr/local/bin:/usr/local/sbin
这要求Apache加载env_模块,但这看起来像是在默认配置中加载的标准模块