我找到了一些关于如何设置 Subversion 存储库并通过子域(使用 Apache 中的虚拟主机)使其可用的指南,但由于某种原因,无法正常工作。以下是我目前得到的结果:
- 创建了子域名“svn.mydomain.com”
使用新的 VirtualHost 配置 Apache:
<VirtualHost *:80> ServerAdmin [email protected] ServerName svn.mydomain.com <location> DAV svn SVNPath /Volumes/Storage/Resources/Subversion/svn_repo </location> </VirtualHost>
目前我还没有设置任何身份验证(为了让事情保持简单,直到我让它工作)。
我是否遗漏了一些显而易见的东西?如果没有,有什么想法/建议吗?
答案1
您需要创建 htpasswd 文件并将其告知 SVN。以下是我在 Centos 5.5 上设置 SVN 的说明:
Install SVN
# yum install mod_dav_svn subversion
Create the SVN Config File
# vi /etc/httpd/conf.d/subversion.conf
Add the first repo to the file above
<Location /domain.com>
DAV svn
SVNPath /var/www/svn/domain.com
AuthType Basic
AuthName "Subversion Repo"
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>
Create the password file
# htpasswd -cm /etc/svn-auth-conf yourusername
Create another user
# htpasswd -m /etc/svn-auth-conf anotherusername
Create repository
# svnadmin create /var/www/svn/domain.com
Set Permissions
# chown apache -R /var/www/svn
希望有帮助!
答案2
我知道这是一个老问题,但我遇到了这个问题,并且我能够按照本教程设置子域来托管我的所有存储库
http://dhruba.name/2011/05/23/installing-subversion-using-subdomain-on-apache-and-debian/
只需在“SVNParentPath”上提到您应该输入绝对路径,例如:“/var/www/svn/”,
答案3
我遇到了类似的问题。
原因是目录访问权限。如果您不提供DocumentRoot
,Apache 将选择其默认的DocumentRoot
。如果默认访问DocumentRoot
被拒绝——那么 SVN 也会被拒绝。
只需在您的 VirtualHost 中设置DocumentRoot
为一个现有的空目录,然后在某个<Directory>
部分中授予allow
该目录的权限。