按照this helpful guide中的说明,我一直在尝试使用Apache代替svnserve在我的网站上设置Subversion。设置好所有内容后,我将在 / 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;在此之前,我已经给出了www-data: / srv / svn 的www-data所有权以及 / srv / svn / myrepository 。我在这些目录上运行 stat 来验证这一点。
6)Ping code.mydomain.com 表明它确实正在解析为正确的IP
7)我运行了 a2ensite code.mydomain.com ,显然还没有完成(oops),并重新启动了Apache。文件夹 /srv/www/code.mydomain.com/logs 现在包含access.log和error.log,但这两个文件仍为空。同时,尝试访问 code.mydomain.com 会产生与之前相同的结果,默认的Apache error.log包含与以前相同的错误消息。
8)所有Apache配置文件都不包含 NameVirtualHost *:80 行。
答案 0 :(得分:0)
首先检查您是否会 http 而不是 https 。
我正在使用centos 5.5。将我的/etc/httpd/conf.d/subversion.conf与您提供的内容进行比较,得出以下观察结果。
检查:
尝试注释掉AuthType,AuthName,AuthUserFile并要求查看是否有效。请尝试将它们包含在:
中<LimitExcept GET PROPFIND OPTIONS REPORT>
...
</LimitExcept>
这些行在某处
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
你已经完成了
svnadmin create /srv/svn/myrepository
你已经完成了
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。
中添加路径答案 1 :(得分:0)
我认为您只需要确保svn网站虚拟域保持在层次结构的顶部。默认情况下,debian系统将默认端口配置为默认域。您可能想要更改特定于域的内容。
请查看此链接http://www.daniweb.com/forums/thread268331.html以获取详细说明。
最后一行“sudo a2ensite svn.example.com”非常重要。