【问题标题】:Trac & Apache Server: SSL & Virtual Hosts not workingTrac 和 Apache 服务器:SSL 和虚拟主机不工作
【发布时间】:2018-01-25 22:36:38
【问题描述】:

我已经用 Apache 配置了一个 Ubuntu 16.04 服务器并在上面安装了 Trac 1.2.2。我想通过https://subdomain.example.com访问使用 SSL 的 Trac 安装

我现在在 /etc/apache2/sites-available/ 中有以下两个 .conf 文件:

ssl.conf:

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache.crt
SSLCertificateKeyFile /etc/ssl/private/apache.key
DocumentRoot /var/www/html/

testinstallation.conf:

WSGIScriptAlias /trac/testinstallation /var/www/html/trac/testinstallation/cgi-bin/trac.wsgi

<Location /trac/testinstallation>
  AuthType Digest
  AuthName "testinstallation"
  AuthUserFile /var/lib/trac/testinstallation/.htdigest
  Require valid-user    
</Location>

当我打开 https://subdomain.example.com/trac/testinstallation 时,一切正常 - 但我想通过 https://subdomain.example.com 访问我的 Trac 环境。当我将 ssl.conf 中的 DocumentRoot 更改为 /var/www/html/trac/testinstallation 时,我只能看到两个文件夹,但看不到 Trac 环境(我不知道如何将 WSGIScriptAlias 实现到 ssl.会议)。有人可以帮我解决这个问题吗?

另一个问题:我可以使用 SSL 在一台服务器上运行多个 Trac 安装吗?如果是,我可能需要另一个 VirtualHost 文件 - 但里面应该有什么?

【问题讨论】:

    标签: apache ssl https virtualhost trac


    【解决方案1】:

    WSGIScriptAlias 的第一个参数是 URL 路径。因此,要仅通过子域访问 Trac 安装,您可以将 WSGIScriptAlias 指令修改为

    WSGIScriptAlias / /var/www/html/trac/testinstallation/cgi-bin/trac.wsgi
    

    DocumentRoot 就不用说了。 WSGIScriptAlias 指令负责处理它。如果您想在多个子域上运行多个 Trac 安装,请重复您遵循的相同过程。即,

    • 部署项目目录
    • 创建 Trac 用户
    • 创建虚拟主机并启用站点

    否则,您可以通过在同一个 vhost 文件中定义多个 WSGIScriptAlias 指令,将多个 Trac 安装作为同一子域下的多个子目录运行。

    单个子域上多个 Trac 安装(test1 和 test2)的 vhost 文件示例:

    trac.conf

    <VirtualHost *:443>
        SSLEngine On
        SSLCertificateFile /etc/ssl/certs/apache.crt
        SSLCertificateKeyFile /etc/ssl/private/apache.key
    </VirtualHost>
    
    WSGIScriptAlias /test1 /var/www/html/trac/test1/cgi-bin/trac.wsgi
    <Location /login>
        AuthType Digest
        AuthName "test1"
        AuthUserFile /var/lib/trac/test1/.htdigest
        Require valid-user
    </Location>
    
    WSGIScriptAlias /test2 /var/www/html/trac/test2/cgi-bin/trac.wsgi
    <Location /login>
        AuthType Digest
        AuthName "test2"
        AuthUserFile /var/lib/trac/test2/.htdigest
        Require valid-user
    </Location>
    

    【讨论】:

      猜你喜欢
      • 2016-11-06
      • 2020-02-02
      • 2016-11-05
      • 1970-01-01
      • 2013-08-29
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多