使用 Apache 和 mod_fcgi 设置 Trac 会导致 404 或 403

使用 Apache 和 mod_fcgi 设置 Trac 会导致 404 或 403

我正在尝试在我的私人服务器上创建 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

用你的选择替换用户名,并且像往常一样,你应该至少有另一个具有常规权限的用户(在登录权限之后)已认证团体申请)。

相关内容