我已经使用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文件 - 但应该在那里?
答案 0 :(得分:0)
WSGIScriptAlias
的第一个参数是URL路径。因此,要仅通过子域访问Trac安装,可以将WSGIScriptAlias
指令修改为
WSGIScriptAlias / /var/www/html/trac/testinstallation/cgi-bin/trac.wsgi
无需提及DocumentRoot
。 WSGIScriptAlias
指令会处理它。如果要在多个子域上运行多个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>