我正在尝试在我的私人服务器上创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权限适用后)。