我正在尝试设置 Trac 以测试其功能,而我在网上找到的唯一指南谈论的是设置 VirtualHost。现在我的印象是,我需要访问 DNS 服务器才能正确使用 VirtualHost 指令,但由于各种原因,我无法访问 DNS 服务器。是否可以在不设置 VirtualHost 的情况下设置 Trac?我还没有成功。如果我使用 tracd 运行网站,它可以正常工作 - 这意味着至少部分设置正确。
现在我所拥有的只是一个指向 /pathToTracSite/htdocs/ 的 Apache Directory 指令,当我访问 trac 位置时,从浏览器查看该站点时得到的只是一个空目录(这是有道理的,因为 htdocs/ 是空的)。
我的服务器正在运行 Apache2
我知道我在这里遗漏了很多,因为我不太了解 Apache Trac 系统——任何帮助都将不胜感激。
答案1
如果您希望 trac 运行得更快,请使用 mod_wsgi(它比 mod_python 更快,两者都比 CGI 更快)。它可以作为 apache 模块从源代码或二进制包安装(请参阅 yum 或 apt-get)。安装 MoinMoin 时,我发现 mod_python 和 wsgi 之间的差异很大。刚刚注意到,您的绊脚石是 python web 应用程序必须在 Apache 中配置后才能运行(它不像 PHP 或 CGI 应用程序那样工作)。
为 WSGI 设置 trac:
- 在 trac 安装中创建一个 apache 目录 (mkdir /trac/apache)
- 在 /trac/apache 中为 trac 创建一个 wsgi 文件(如下所列)
- 在 trac 安装中创建一个 eggs 目录 (mkdir /trac/eggs)
- 将以下内容添加到您的 apache conf 中(使用包含文件以提高可读性)
- 将 trac 的所有权更改为 Web 服务器 (chown -R apache /trac)
Apache 会议
WSGIScriptAlias /trac /trac/apache/trac.wsgi
## This is required if you plan to use HTTP authorization. Without it the
## user name won't be passed
WSGIPassAuthorization On
<Directory /trac/apache >
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
AuthName "Trac at My Company"
AuthType Basic
AuthUserFile /var/secure/authfiles/trac-authfile
Require valid-user
</Directory >
trac.wsgi
import sys
sys.stdout = sys.stderr
import os
os.environ['TRAC_ENV'] = '/trac'
os.environ['PYTHON_EGG_CACHE'] = '/trac/eggs'
import trac.web.main
application = trac.web.main.dispatch_request
要为 mod_python 设置 Trac,你可以按照以下说明进行操作TracModPython,为方便您阅读,复制于此:
<Location /projects/myproject>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/trac/myproject
PythonOption TracUriRoot /projects/myproject
</Location>
答案2
Trac 在 /Location 中也能正常工作
答案3
您无需更改 DNS 即可使用虚拟主机,/etc/hosts
客户端计算机上的条目也可以正常工作。您也无需运行 Apache;出于测试目的,tracd 就可以很好地完成这项工作。
答案4
很棒的提示!我在 mod_python 上运行 Trac 时遇到了问题,我按照这些说明将其更改为 mod_wsgi。不过应该添加一些更正
- 使用 apt-get 或 yum 安装 libapache2-mod-wsgi 包
- Trac install 本质上是指你执行 trac-admin initenv 的项目位置
- Apache conf(在 ubuntu 中)位于 /etc/apache2/conf.d/ 文件夹中。您需要创建一个文件(比如 trac)来添加路由信息。第一个语句定义 URL。在此处给出的示例中,/trac 映射到 /trac/apache/trac.wsgi,此处 /trac 将是您的 Web 服务器根目录。