使用Apache设置Trac,mod_fcgi的结果为404或403

我正在尝试在我的私人服务器上创buildtrac安装,以便将其用于项目pipe理。 我按照说明安装并连接到可以在官方trac安装指南中find的apache服务器,但是当我尝试访问trac时,我得到错误404。当我禁用ScriptAlias时,我得到403访问被拒绝。 以下是详细信息:

我的设置是这样的:在无头模式下运行的ArchLinux i686(我通过ssh连接到它),并无线连接到我的家庭networking的路由器。 我select使用FastCGI连接trac和apache

trac用户包含trac相关的所有东西。

$ sudo ls /home/trac cgi-bin env htdocs 

env是项目所在的位置cgi-bin和htdocs是使用trac-admin $TARGET $DESTINATION deploy命令生成的。

包含Apache服务器的DocumentRoot的httpd用户:

 $ sudo ls /home/httpd ftp http 

我把所有权归于/ home / trac,recursion地分配给httpd和http组(不安全,我知道,但是我想以最简单的方式首先testing它):

 sudo chown -R http.httpd /home/trac 

我对httpd.conf做了如下修改:

添加:

 LoadModule fcgid_module modules/mod_fcgid.so 

更改:

 User httpd Group http 

将DocumentRoot更改为无处不在:

 DocumentRoot "/home/httpd/http" 

最后我启用了虚拟主机:

 # Virtual hosts Include conf/extra/httpd-vhosts.conf 

这里是httpd-vhosts.conf:

 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/home/trac/" ServerName SERVER_IP ErrorLog "/var/log/httpd/trac.error.log" CustomLog "/var/log/httpd/trac.access.log" combined <Location /> Order deny,allow Deny from all Allow from 192.168.0.0/16 127.0.0.1 </Location> <Location /env> Order deny,allow Allow from all AuthName "Trac Projects" AuthType Basic AuthUserFile /home/trac/.htpasswd Satisfy Any Require valid-user </Location> ScriptAlias /env /home/trac/cgi-bin/trac.fcgi 

请注意,我已经使http所拥有的trac.fcgi以及显式设置权限,使其可执行。

当ScriptAlias被评论时,我得到403根访问拒绝,SERVER_IP,以及SERVER_IP / env或path中的任何其他目录。 当该行没有评论时,我得到403根访问拒绝和404对象没有find一切。

我曾经到过这个地方的来源,首先是tracinstall指南 ,然后是过时的arch linux安装指南,当第一个没有工作时(产生了与我描述的相同的结果,只有我能够到达虚拟页面在DocumentRoot中,甚至在启用了脚本别名的情况下,SERVER_IP / env被拒绝访问403)。 这里是httpd.conf,因为它太大而不能在这里发布: httpd.conf

我认为这是一个权限问题,但我的,因为我有限的经验,我似乎无法达成解决scheme。

提前致谢。

PS由于我通过ssh控制整个事物,以不同的用户身份login,所以在创buildhttp和ftp目录后,我必须给予其httpd所有权。 我不确定这是否重要。

请注意,通用安装指南中有一个专用的FastCGI设置wiki页面 。 请注意,wsgi是目前Trac的推荐设置。

但是,如果你只是为了私人使用,我怀疑,这是值得的麻烦。 这可能是教育性的,对,但我敢打赌,与tracd的独立设置将带给你在几分钟内运行Trac本身。

与访问/身份validation相关,您应该在/home/trac/.htpasswd中至less有一个用户,并且必须在Trac中注册相同的用户(比较喜欢小写字母,空格等没有花哨的东西)允许。 首先,您应该使用trac-admin将第一个用户添加为Trac admin

 $> trac-admin /home/trac permission add <username> TRAC_ADMIN 

用你的selectreplace用户名,像往常一样,你应该至less有另一个用户有正常的权限(在authentication组的login权限适用后)。