无需在 Apache 中设置虚拟主机即可安装 Trac?

无需在 Apache 中设置虚拟主机即可安装 Trac?

我正在尝试设置 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。不过应该添加一些更正

  1. 使用 apt-get 或 yum 安装 libapache2-mod-wsgi 包
  2. Trac install 本质上是指你执行 trac-admin initenv 的项目位置
  3. Apache conf(在 ubuntu 中)位于 /etc/apache2/conf.d/ 文件夹中。您需要创建一个文件(比如 trac)来添加路由信息。第一个语句定义 URL。在此处给出的示例中,/trac 映射到 /trac/apache/trac.wsgi,此处 /trac 将是您的 Web 服务器根目录。

相关内容