我正在尝试在我的私人服务器上创建 trac 安装,以便将其用于项目管理。我按照安装说明并连接到 apache 服务器,这些说明可以在官方 trac 安装指南但当我尝试访问 trac 时,出现错误 404。当我禁用 ScriptAlias 时,出现 403 访问被拒绝。以下是详细信息:
我的设置如下:ArchLinux i686 以无头模式运行(我通过 ssh 连接到它)并通过无线方式连接到我的家庭网络路由器。我选择使用 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 中所有内容的所有权授予 httpd 和 http 组(我知道这不安全,但我想先以最简单的方式进行测试):
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
请注意,我已使 trac.fcgi 归 http 所有,并明确设置权限以使其可执行。
当 ScriptAlias 被注释时,对于根目录、SERVER_IP 以及 SERVER_IP/env 或路径中的任何其他目录,我都会收到 403 Access Denied。当此行未被注释时,对于根目录,我收到 403 Access Denied,对于其他所有内容,我收到 404 Object Not Found。
我用来达到这一点的资料来源首先是tracinstall 指南然后是过时的arch linux 安装指南当第一个不起作用时(产生了与我所描述的相同的结果,只有我能够到达 DocumentRoot 中的虚拟页面,即使启用了脚本别名,SERVER_IP/env 仍被拒绝访问 403)。这是 httpd.conf,因为它太大了,无法在此处发布: httpd配置文件
我认为这是一个权限问题,但由于我对 Apache 的经验有限,我似乎无法找到解决方案。
提前致谢。
PS 由于我通过 ssh 控制整个过程,并以其他用户身份登录,因此在创建 http 和 ftp 目录后,我必须将其所有权授予 httpd。但我不确定这是否重要。
答案1
请注意,有一个专门的FastCGI 设置 wiki 页面通用安装指南中有链接。还要注意的是,wsgi 是目前 Trac 的推荐设置。
但如果你只想私人使用,我严重怀疑,这一切都值得。它可能很有教育意义,对吧,但我敢打赌,独立设置跟踪将在几分钟内启动并运行 Trac。
与访问/身份验证相关,您的/home/trac/.htpasswd,并且必须在 Trac 中注册同一个用户(最好使用小写字母,不要使用空格等花哨的东西),并授予适当的权限。首先,您应该使用以下命令将第一个用户添加为 Trac 管理员trac-管理员喜欢
$> trac-admin /home/trac permission add <username> TRAC_ADMIN
用你的选择替换用户名,并且像往常一样,你应该至少有另一个具有常规权限的用户(在登录权限之后)已认证团体申请)。