1

我一直在把头发拉出来,所以希望有人能对此有所了解。我一直在尝试使用 Apache 和 mod_fcgid 在 CentOS 6.3 服务器上安装 Trac 1.0。

当我将浏览器指向应该运行 Trac 的虚拟主机时,我得到一个内部服务器错误 (500) 和如下日志条目:

(104) 对等方重置连接:mod_fcgid:从 FastCGI 服务器读取数据时出错脚本头过早结束:trac.fcgi

我在 /var/trac/projectname 中创建了 trac 环境

然后,我使用 trac-admin deploy 将项目的 cgi-bin 和 htdocs 部署到我的虚拟主机的 webroot 中。在 vhost.conf 我添加了以下内容:

ScriptAlias / /home/httpd/vhosts/xxxx/sites/xxxx/cgi-bin/trac.fcgi/
DefaultInitEnv TRAC_ENV /var/trac/
ErrorLog "/var/log/httpd/xxxxx/error_log"
CustomLog "/var/log/httpd/xxxxx/access_log" common
LogLevel debug

<Directory "/home/httpd/vhosts/xxxxx/sites/xxxxx/htdocs">
  Order allow,deny
  Allow from all
</Directory>

<Directory "/home/httpd/vhosts/xxxxx/sites/xxxxx/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
</Directory>

注意我把 xxxx 匿名化了一些域名信息。

关于这里可能出现什么问题的任何想法?或者我怎样才能更多地调试它以获得更多有用的日志信息?我已经在 trac.ini 中将日志记录设置为调试,但它没有记录任何内容。

4

2 回答 2

1

trac.edgewall.org 上的权威 wiki 中的相关文档不会立即提供提示,说明您的配置可能有误。

但是您的 Error:104 表明 fcgi 可执行文件本身存在问题。也许您甚至想尝试将 Trac 环境的路径嵌入到trac.fcgi脚本本身中的方法,如上述 wiki 页面链接的示例中所推荐的那样。

于 2012-10-27T08:01:13.160 回答
1

因此,在发现将环境路径添加到 trac.fcgi 可执行文件本身之后,我检查了 trac.fcgi 的正确掩码。我注意到它没有任何可执行权限,所以我给了所有者可执行权限(744)。之后它就可以工作了,无论是超级慢,我都没有在左上角看到 trac 标志。这可能与 vhost conf 中的资源别名有关,因此我现在将对其进行研究。

我确实觉得尴尬,这让我怀疑该文件是否应该是可执行的,因为官方安装 wiki 中没有提到这一点。

编辑:将我的 vhost.conf 中静态资源的别名行移到 ScriptAlias 行上方。之后,静态资源加载成功,Trac 速度更快。看起来现在一切正常。惊人的。:)

于 2012-10-27T19:44:00.257 回答