linux下搭建svn服务器

上一篇 / 下一篇  2013-03-26 19:08:39 / 个人分类:测试工具

转自http://blog.csdn.net/yuanfeiyan/article/details/2473414
第一次弄svnapache服务器,弄了一整天,在上面博客的指导下终于弄通了。
1:选择的linux主机是centos5.0,因为对这个linux最熟悉,所以就用了。centos默认带有web server,也是apache的软件,所以我们只要安装subversion和补丁插件即可。其他安装方式可参考http://subversion.apache.org/packages.html.
centos配置好了yum源的话直接yum安装即可
yum install subversion
yum install mod_dav_svn
安装完成后可通过svnserve - -version检验subversion是否安装成功。
完了再看看apache 的相关模块有没有加载!如下!

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

2:创建subversion项目
mkdir /svn
cd /svn 
svnadmin create project/iTest
ls /svn/project/iTest /*查看有没有创建好,如果多了一些文件则说明版本库已经创建好
 此时可把项目文件导入到该svn目录内
svn import /share/project ftp:///svn/project/iTest -m "milestone"
修改目录权限
chown -R 755 apache:apache /svn/project 
3:修改http配置文件,vi /etc/httpd/conf/httpd.conf
httpd.conf文件中有这么一段内容:

User daemon
Group daemon

把上述内容改成:
User apache
Group apache
(
我的系统在安装apache的时候,自动增加了apache用户和apache,如果你系统没有这个用户和组,则请自己添加该用户和组)

在文件末尾添加
   LoadModule dav_svn_module modules/mod_dav_svn.so 
   LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn>
DAV svn

SVNListParentPath on (指定用户可以浏览http目录)

SVNParentPath /svn/project (此处配置你的版本库根目录
AuthType Basic 
(连接类型设置 基本验证)
AuthName "Hello welcome to here" 
(此处字符串内容修改为提示对话框标题)
AuthUserFile /svn/passwd (
此处修改为访问版本库用户的文件,用apache htpasswd命令生成)
AuthzSVNAccessFile /svn/auth.conf 
(此处修改为访问版本库权限的文件)
Require valid-user 
"Require valid-user"告诉apacheauthfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库)

</locateon>

保存文件退出!

注意:SVNListParentPath on不指定可能会导致访问的时候显示403错误,无权限访问。

4:配置用户文件和权限文件

htpasswd /svn/passwd -c user1

然后输入用户名

htpasswd /svn/passwd user2

配置权限

vi /svn/auth.conf

[groups] /*这个表示群组设置

Admin=usr1,user2 /*这个表示admin群组里的成员 user1,user2

Develop=u1, u2 /*这个表示Develop群组里的成员 u1,u2

[iTest:/] /*这表示,仓库iTest的根目录下的访问权限

user1 = rw /*iTest仓库user1用户具有读和写权限
user2 = r /* iTest
仓库userl用户具只有读权限

@Develop=rw /*这表示 群 develop的成员都具有读写权限
[/] /*
这个表示在所有仓库的根目录下
* = r /*
这个表示对所有的用户都具有读权限

a* = 表示对所有用户都没有读写权限

比如仓库rpo,其下有p1,p2两个目录,用户有a,b

#用户a,b只能对rpo目录下的目录进行read,没有权限write

[rpo:\]

a = r

b = r

#用户a对p1有读写的功能,用户b只能读

[doc:/p1]

a = rw

b = r

tips:请注意用户会继承上级目录的权限。小心设置,不要相互冲突。

注意:在编辑authz.conf文件时,所有行都必须要顶头写,不能有缩行出现,否则会报错:"Access denied: 'user1' ",里面的内容可以根据自己的需要自行添加,不必与我上面所写的相同!

5:保存后重启http和svn服务

service httpd restart

svnserve -d -r /svn/project


6:此时即可通过web登录http://XXXXXX/svn/project/iTest,弹出认证窗口,输入用户名和密码即可。如果有任何错误,可查看httpd的运行日志

more /etc/httpd/log/error.log




TAG: Apache apache Linux linux Subversion subversion svn SVN

 

评分:0

我来说两句

我的栏目

日历

« 2022-01-21  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

数据统计

  • 访问量: 901
  • 日志数: 2
  • 建立时间: 2012-08-01
  • 更新时间: 2018-03-21

RSS订阅

Open Toolbar