我已经在 Ubuntu 10.04 上设置了 subversion,但无法使身份验证正常工作。我相信我的所有配置文件都设置正确,但是我在 SVN CHECKOUT 上不断收到输入凭据的提示。就像 apache2 与 svnserve 通信时出现问题一样。如果我允许匿名访问,checkout 工作正常。
是否有人知道 subversion 和 10.04 是否存在已知问题,或者在我的配置中看到错误?
以下是我的配置:
# fresh install of Ubuntu 10.04 LTS 32bit
sudo apt-get install apache2 apache2-utils -y
sudo apt-get install subversion libapache2-svn subversion-tools -y
sudo mkdir /svn
sudo svnadmin create /svn/DataTeam
sudo svnadmin create /svn/ReportingTeam
#Setup the svn config file
sudo vi /etc/apache2/mods-available/dav_svn.conf
#replace file with the following.
<Location /svn>
DAV svn
SVNParentPath /svn/
AuthType Basic
AuthName "Subversion Server"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
AuthzSVNAccessFile /etc/apache2/svn_acl
</Location>
sudo touch /etc/apache2/svn_acl
#replace file with the following.
[groups]
dba_group = tom, jerry
report_group = tom
[DataTeam:/]
@dba_group = rw
[ReportingTeam:/]
@report_group = rw
#Start/Stop subversion automatically
sudo /etc/init.d/apache2 restart
cd /etc/init.d/
sudo touch subversion
sudo cat 'svnserve -d -r /svn' > svnserve
sudo cat '/etc/init.d/apache2 restart' >> svnserve
sudo chmod +x svnserve
sudo update-rc.d svnserve defaults
#Add svn users
sudo htpasswd -cpb /etc/apache2/dav_svn.passwd tom tom
sudo htpasswd -pb /etc/apache2/dav_svn.passwd jerry jerry
#Test by performing a checkout
sudo svnserve -d -r /svn
sudo /etc/init.d/apache2 restart
svn checkout http://127.0.0.1/svn/DataTeam /tmp/DataTeam
答案1
为什么要同时使用svnserve
和apache
?你可以使用其中之一,但同时使用两者会带来麻烦。
要通过 http 提供 Subversion 服务,您需要在 apache 中启用 mod_dav 和 mod_svn。
答案2
由于它是 DAV,您需要检查 apache 错误日志以查找身份验证失败。您可以使用浏览器正确进行身份验证吗?