在子域上设置 SVN 存储库

在子域上设置 SVN 存储库

我找到了一些关于如何设置 Subversion 存储库并通过子域(使用 Apache 中的虚拟主机)使其可用的指南,但由于某种原因,无法正常工作。以下是我目前得到的结果:

  1. 创建了子域名“svn.mydomain.com”
  2. 使用新的 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该目录的权限。

相关内容