尝试设置SVN以使用HTTP,用户/ auth用户访问文件。
我在Apache服务器的subversion.conf中有以下内容:
<Location /repos>
DAV svn
SVNPath /apps/CollegeDir/CollegeRepository/
AuthzSVNAccessFile /asvn/svnAccessAuthz
AuthType Basic
# AuthName "Subversion Repository"
AuthUserFile /asvn/svnUserAuthz
Require valid-user
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
# AuthType Basic
# AuthName "Authorization Realm"
# AuthUserFile /path/to/passwdfile
# Require valid-user
# </LimitExcept>
</Location>
我在用户/密码auth文件中有以下内容(每个文件都已设置 以apache / apache / 766作为测试)
/asvn/svnAccessAuthz
[/]
* = rw
[/repos]
* = rw
[/repos/trunk]
* = rw
[repos:/]
* = rw
[repos:/trunk]
* = rw
[/trunk]
* = rw
/asvn/svnUserAuthz
bill:$apr1$NsGWbE/9$695MXkrm8x06hMabC3Hu71
the svnUserAuthz file was create using:
htpasswd -mb /etc/svnUserAuthz bill qqqqqq
当我尝试访问repos时,使用以下内容我得到内部 500错误,apache err日志中有“Need Authname / foo”。
svn list --username bill --password qqqqqq http://192.168.1.45/repos
svn: Server sent unexpected return value (500 Internal Server Error)
in response to OPTIONS request for 'http://192.168.1.45/repos'
error_log是:
[Thu Mar 17 21:08:38 2011] [error] [client 192.168.1.45] need AuthName: /repos/
[Thu Mar 17 21:08:43 2011] [error] [client 192.168.1.45] need AuthName: /repos/trunk
如果我注释掉
# AuthzSVNAccessFile /asvn/svnAccessAuthz
# AuthType Basic
# AuthName "Subversion Repository"
# AuthUserFile /asvn/svnUserAuthz
# Require valid-user
然后我可以轻松访问repos,所以我搞砸了
用户/密码访问过程。
我已将/ asvn和svn文件的访问权限设置为:
chmod 766
chown apache.apache
所以apache服务器完全可以访问这些文件......
我在auth文件中尝试了很多组合来尝试使用它 允许测试用户访问,但我完全被难倒了。
非常感谢思考/评论/指示。
由于
答案 0 :(得分:2)
我有一个bash脚本,我可以卖:) 它甚至创建了我的svn钩子:) 我认为你不应该将auth名称注释掉
在这里,我从我的一个svns给你一些工作配置。
<Location />
DAV svn
SVNPath '/var/svn/web1339/reproname'
SVNAutoversioning on
AuthType Basic
AuthName 'svn - reproname'
AuthUserFile '/var/svn/web1339/reproname/dav_svn.passwd'
Require valid-user
</Location>
repro由apache用户拥有,它可以是apache或www-data取决于你的系统。 apos on centos。关于debian的www-data。
使用htpasswd工具,您可以编辑密码文件。
htpasswd -bcs "${reprofolder}/dav_svn.passwd" "$3" "$4"
$ 3应该是用户名$ 4是密码。
玩得开心,祝你好运。
答案 1 :(得分:0)
一种可能性(来自问题中的摘录)svnUserAuthz
文件存在于/etc
而非/asvn
,正如apache配置所预期的那样。