Trac& Apache服务器:SSL&虚拟主机无法正常工作

时间:2017-08-17 13:23:59

标签: apache ssl https virtualhost trac

我已经使用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.conf中)。有人可以帮我解决这个问题吗?

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

1 个答案:

答案 0 :(得分:0)

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

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

无需提及DocumentRootWSGIScriptAlias指令会处理它。如果要在多个子域上运行多个Trac安装,请重复执行相同的过程。即

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

通过在同一虚拟主机文件中定义多个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>
相关问题