1

按照这个有用指南中的说明,我一直在尝试在我的站点上设置 Subversion,使用 Apache 而不是 svnserve。一切都设置好后,我将在/srv/svn/myrepository有一个存储库,可以从code.mydomain.com访问。

但是,按照上面链接的指南中的所有说明进行操作后,访问code.mydomain.com会显示 Apache 默认站点/var/www的内容(即“它可以工作!”)。这也会在我的 Apache 日志中生成以下错误:

[Sat Nov 06 10:11:33 2010] [notice] caught SIGTERM, shutting down
[Sat Nov 06 10:11:34 2010] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Sat Nov 06 10:11:34 2010] [notice] mod_python: using mutex_directory /tmp
[Sat Nov 06 10:11:34 2010] [notice] Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mod_jk/1.2.26 PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 configured -- resuming normal operations

这是我的站点配置的编辑版本:

<VirtualHost my.server.ip:80>
        ServerAdmin me@mydomain.com
        ServerName code.mydomain.com
        ErrorLog /srv/www/code.mydomain.com/logs/error.log
        CustomLog /srv/www/code.mydomain.com/logs/access.log combined

        <Location />
                DAV svn
                SVNPath /srv/svn/myrepository

                AuthType Basic
                AuthName "Subversion Repository"
                AuthUserFile /srv/auth/svn/myrepository.htpasswd
                Require valid-user
        </Location>
</VirtualHost>

提前感谢您提供的任何帮助!


以下是我根据其他用户的建议进行的一些故障排除的结果(非常感谢)。在每种情况下,我都在进行更改后重新启动了 Apache,然后检查了站点以验证结果:

0) 我没有通过 SSL 连接。

1) SVNParentPath 仅在使用多个存储库时才是必需的——在这里,我只使用一个。尽管如此,我还是使用 SVNParentPath 作为测试重新进行了配置,并得到了相同的结果。

2)我试图将 Auth 选项放在 Limit 节中,并得到相同的结果。然后我删除了所有 Auth 选项,但得到了相同的结果。

3) 从配置文件中删除所有 Auth 选项并收到相同的结果,我认为这与授权模块无关;尽管如此,我可以确认虽然我确实加载了 dav_svn 模块,但我没有加载 authz_svn 模块。

4) 我已经在/srv/svn/myrepository位置创建了存储库。我在该位置运行svnadmin verify,该工具报告一切正常。

5) 我在 Debian 5 上,Apache 作为 www-data 运行;在此之前,我已授予/srv/svn/srv/svn/myrepository的 www-data:www-data 所有权。我在这些目录上运行了stat来验证这一点。

6) ping code.mydomain.com表明它确实解析到正确的 IP

7) 我运行了a2ensite code.mydomain.com,这显然还没有完成(哎呀),然后重新启动了 Apache。/srv/www/code.mydomain.com/logs文件夹现在包含 access.log 和 error.log,但两个文件都保持为空。同时,尝试访问code.mydomain.com会产生与以前相同的结果,并且默认的 Apache error.log 包含与以前相同的错误消息。

8) Apache 配置文件都不包含NameVirtualHost *:80行。

4

2 回答 2

0

首先检查您要访问http而不是https

我正在使用centos 5.5。将我的 /etc/httpd/conf.d/subversion.conf 与您提供的内容进行比较,得出以下观察结果。

查看:

  1. SVNPath 应该是 SVNParentPath
  2. 尝试注释掉 AuthType、AuthName、AuthUserFile 和 Require 以查看是否有效。尝试将它们包含在:

    <LimitExcept GET PROPFIND OPTIONS REPORT>
    ...
    </LimitExcept>
    
  3. 这些线在某处

    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so
    
  4. 你所做的

    svnadmin create /srv/svn/myrepository
    
  5. 你所做的

    chown -R apache.apache /srv/svn/myrepository
    

    (如果您使用的是 debian/ubuntu apache.apache 将是 www-data:www-data)。

看来您不应该将这些东西放在文件/etc/apache2/sites-available/code.domain.com 中,而是应该编辑/etc/apache2/mods-available/dav_svn.conf(它应该已经存在并且包含或多或少与您尝试放入站点 conf 文件中的内容相同的内容。从站点 conf 文件中删除所有重复的内容)。

您需要在 /svn 位置放置一个路径。

于 2010-11-06T16:24:38.353 回答
0

我认为您只需要确保 svn 站点虚拟域保持在层次结构的顶部。默认情况下,debian 系统将默认端口配置为默认域。您可能希望将其更改为特定于域。

检查此链接http://www.daniweb.com/forums/thread268331.html以获取一些详细说明。

最后一行“sudo a2ensite svn.example.com”很重要。

于 2010-11-07T18:19:20.410 回答