VirtualBox

将 Trac 安装为 CGI

请注意,通过 CGI 使用 Trac 是最慢的部署方法。它比 mod_wsgimod_pythonFastCGI 甚至 Windows 上的 IIS/AJP 还要慢。

CGI 脚本是 Web 服务器在接收到应用程序的 Web 请求时调用的入口点。可以使用 `trac-admin <env> deploy <dir>` 命令创建 `trac.cgi` 脚本,该命令会自动替换所需的路径,详见 TracInstall#cgi-bin。请确保您的 Web 服务器可以执行该脚本。

Apache Web 服务器配置

Apache 中,有两种方式运行 Trac 作为 CGI:

  1. 使用 `ScriptAlias` 指令将 URL 映射到 `trac.cgi` 脚本(推荐)
  2. 将 `trac.cgi` 文件复制到 Web 服务器使用的 CGI 可执行文件目录中(通常命名为 `cgi-bin`)。您也可以创建符号链接,但在这种情况下,请确保为 `cgi-bin` 目录启用了 `FollowSymLinks` 选项。

要在 `http://yourhost.example.org/trac` 使 Trac 可用,请将 `ScriptAlias` 指令添加到 Apache 配置文件中,并更改 `trac.cgi` 路径以匹配您的安装。

ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.cgi

请注意,此指令要求启用 `mod_alias` 模块。

如果您使用 Trac 仅处理单个项目,则需要使用 `TRAC_ENV` 环境变量设置其位置。

<Location "/trac">
  SetEnv TRAC_ENV "/path/to/projectenv"
</Location>

或者,要使用多个项目,您可以使用 `TRAC_ENV_PARENT_DIR` 变量指定它们的共同父目录。

<Location "/trac">
  SetEnv TRAC_ENV_PARENT_DIR "/path/to/project/parent/dir"
</Location>

请注意,`SetEnv` 指令要求启用 `mod_env` 模块。

`SetEnv` 的替代方法是编辑 `trac.cgi` 中的 `TRAC_ENV` 或 `TRAC_ENV_PARENT_DIR`。

    os.environ['TRAC_ENV'] = "/path/to/projectenv"
    os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/parent/dir"

如果您正在使用 Apache suEXEC 功能,请参阅 ApacheSuexec

在某些系统上,您*可能*需要编辑 `trac.cgi` 文件中的 shebang 行,以指向您实际的 Python 安装路径。在 Windows 系统上,您可能需要配置 Windows 以知道如何执行 `.cgi` 文件(资源管理器 -> 工具 -> 文件夹选项 -> 文件类型 -> CGI)。

Python Egg 缓存

可以使用 `trac.cgi` 中的 `os.environ` 语句配置 egg 缓存,如上所示。要从 Apache 配置中执行相同的操作,请使用 `SetEnv` 指令:

SetEnv PYTHON_EGG_CACHE /path/to/dir

将此指令放置在设置 Trac 环境路径的位置旁边,即在同一个 `<Location>` 块中。

 <Location /trac>
   SetEnv TRAC_ENV /path/to/projenv
   SetEnv PYTHON_EGG_CACHE /path/to/dir
 </Location>

使用 WSGI

您可以在 CGI 下运行 WSGI 处理程序。您可以编写自己的应用程序函数,或使用已部署的 trac.wsgi 应用程序。

映射静态资源

详见 TracInstall#MappingStaticResources

添加身份验证

详见 TracInstall#ConfiguringAuthentication


另请参阅:TracInstallTracModWSGITracFastCgiTracModPython

上次修改 2 年前 最后修改于 2023年06月02日 10:32:55 上午
注意: 查看 TracWiki 获取使用维基的帮助。

© 2025 Oracle 支持 隐私权 / 不要出售我的个人信息 使用条款 商标策略 自动化访问礼仪