Apache 适用于 http 和 https,而 SVN 仅适用于 http

Apache 适用于 http 和 https,而 SVN 仅适用于 http

我之前问过这个问题,大部分问题都解决了。如果我关闭 https 重定向并转到http://mydomain.com/svn/test0,我弹出身份验证窗口,我可以输入我的 AD 凭据,然后就好了。如果我转到http://我的域名.com我被自动重定向到 https,这正是我想要的,并且弹出“CerntOS 测试页面”。完美。

当我想通过 https 访问我的一个测试存储库时,就会出现问题。这是我的 httpd.conf 文件,机密信息已妥善保护……

===

NameVirtualHost *:80

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName svn.mycompany.com
        ErrorLog logs/subversion-error_log
        CustomLog logs/subversion-access_log common
        Redirect permanent / https://svn.mycompany.com
</VirtualHost>

<VirtualHost svn.mycompany.com:443>
        SSLEngine On
        SSLCertificateFile /etc/httpd/ssl/wildcard.mycompany.com.crt
        SSLCertificateKeyFile /etc/httpd/ssl/wildcard.mycompany.com.key
        SSLCertificateChainFile /etc/httpd/ssl/intermediate.crt
        ServerName svn.mycompany.com
        ServerAdmin [email protected]
        ErrorLog logs/subversion-error_log
        CustomLog logs/subversion-access_log common

<Location /svn>
        DAV svn
        SVNParentPath /usr/local/subversion
        SVNListParentPath off
        AuthName "Subversion Repositories"

# NT Logon Details
        Require valid-user
        AuthBasicProvider file ldap
        AuthType Basic
        AuthzLDAPAuthoritative off
        AuthUserFile /etc/httpd/conf/svnpasswd
        AuthName "Subversion Server II"
        AuthLDAPURL "ldap://our-pdc:389/OU=Company Name,DC=com,DC=co,DC=uk?sAMAccountName?sub?(objectClass=*)"
        AuthLDAPBindDN "DOMAIN\subversion"
        AuthLDAPBindPassword XXXXXXX
        AuthzSVNAccessFile /etc/httpd/conf/svnaccessfile

</Location>
</VirtualHost>

===

现在,在 ssl_error_log 中,我得到

===

==> /etc/httpd/logs/ssl_error_log <==
[Fri Nov 01 16:07:55 2013] [error] [client XXX.XXX.XXX.XXX] File does not exist: /var/www/html/svn

===

这是来自 httpd.conf 文件中的 DocumentRoot 指令,它当然指向 /var/www/html。我知道这个位置是错误的,但我如何让 SVN 为 repo 提供服务?

我尝试了 Alias 指令,如下...

Alias /svn /usr/local/subversion

.. 但这个方法不管用。我尝试修改 Location 指令。但还是不管用。

有人能帮忙吗?我感觉这个问题快要解决了……

谢谢。

编辑: apachectl -S输出:

[root@svn conf]# apachectl -S
VirtualHost configuration:
127.0.0.1:443 svn.mycompany.com (/etc/httpd/conf/httpd.conf:1020) 
wildcard NameVirtualHosts and default servers:
default:443 svn.mycompany.com (/etc/httpd/conf.d/ssl.conf:74)
*:80 is a NameVirtualHost
default server svn.mycompany.com (/etc/httpd/conf/httpd.conf:1012)
port 80 namevhost svn.mycompany.com (/etc/httpd/conf/httpd.conf:1012)
Syntax OK

答案1

我认为Alias应该可以工作,但你还必须<Directory "/usr/local/subversion">正确设置。

答案2

改成。<VirtualHost svn.mycompany.com:443><VirtualHost *:443>

您已svn.mycompany.com解决127.0.0.1导致绑定不执行任何操作的原因,以及导致绑定_default_:443获取ssl.conf请求(服务于默认测试页面)的原因。

相关内容