按照这个有用指南中的说明,我一直在尝试在我的站点上设置 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行。