昨天上午刚研究了一会svn,下午同事就要用,搭建完成后想通过用户验证同步数据。但是配置过程中遇到了问题,现在解决了,总结一下。
首先把正确的配置文件贴出来,如下:
创建一个版本库
Svnadmin create /var/svn/web_project
在web_project目录下的conf有三个文件:svnserve.conf、passwd、authz,依次修改
你可以直接删除默认的svnserve.conf文件,然后使用下面的配置:
# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = web_project
说明:
anon-access = none #不允许匿名用户访问
auth-access = write #通过验证的用户可以读和写
password-db = passwd #用户保存文件
authz-db = authz #权限管理文件
realm = web_project#仓库名称
设置用户账号。你可以直接删除默认的passwd文件,然后使用下面的配置:
# vi passwd
[users]
linzuxin = linzuxin
说明:
[users] #是必须的,标记为用户配置开始
linzuxin = linzuxin # linzuxin 是用户名 , linzuxin 是密码。注意,是明文密码
往后所以仓库的用户都在这里记录就可以了。至于那个用户,允许访问那个仓库,在权限管理里限制。
设置用户权限。你可以直接删除默认的authz文件,然后使用下面的配置:
# vi authz
[groups]
devops = linzuxin
[/]
@devops = rw
说明:
devops = linzuxin #devops是组名,linzuxin是用户名,归为这一组,可以有多个用户,用逗号隔开
@devops = rw #说明devops组对所有目录都有读写权限
在调试过程中遇到的问题
1、在客户端访问subversion版本库时出现这个错误:
svnserve.conf:12: Option expected
为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件
2、服务无法启动或者启动服务,找不到服务
can‘t connect to host ip
解决:关闭win防火墙,察看端口是否启用,一般防火墙关了服务就可以启动了。
察看端口: netstat -ano,svn的端口是3690
3、URL ‘svn://172.16.0.118/web_project‘ doesn‘t exist
解决:版本库空,添加一些文件或目录。
4、访问版本库路径错误
如果通过svnserve命令启动服务时指定了发布的具体版本库,则客户端访问时就可以直接使用相对路径访问,如果服务器端使用svnserve -d -r /var/svn/启动服务后,客户端依然使用svn co svn://172.16.0.118/var/svn/web_project /mine,系统将提示svn:NO repository found,说明没有找到版本库,正确的写法是svn co svn://172.16.0.118/web_project /mine
原文地址:http://881955.blog.51cto.com/871955/1660298