2012-04-20 31 views
2

努力寻找Apache22和mercurial的问题根源。一切似乎工作正确 - 使存储库,具有正确配置hgweb.cgi文件夹,设置权限等系统启动时Mercurial未启动[FreeBSD 9.0 Apache22]

这里来的主要问题。一切正常只有如果我(重新)手动启动Apache,否则使用/usr/local/etc/rc.d/apache22 restart,使用service 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 

我的猜测是,这可能是与环境变量的问题,而是什么赫克是service之间的差异从/usr/local/rc.d/运行并直接调用脚本?我错过了什么吗?

回答

2

检查PATH,它看起来很喜欢python不在你的路径中。也许添加在/ usr/local/bin目录到WWW用户

+0

就是这样,谢谢! – Ajax 2012-04-23 13:12:44

0

解决方案实际上是关于制作用户运行的httpd(WWW在我的情况)有$ PATH调整的路径。但是,它可能不是每个人都那么这里明显的是我做过什么:

创建/usr/local/etc/apache22/envvars.d/path.env与内容

#!/bin/bash 
export PATH=$PATH:/usr/local/bin:/usr/local/sbin 

这需要阿帕奇要加载env_module,但这看起来像是要在默认配置中加载的标准模块。