我之前问过这个问题,大部分问题都解决了。如果我关闭 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
请求(服务于默认测试页面)的原因。