安装说明
系统环境: CentOS 6.5 安装方式: yum
检查已安装版本
[root@CentOS /]# rpm -qa subversion //检查是否安装了低版本的SVN
[root@CentOS /]# yum remove subversion //卸载旧版本SVN
[root@CentOS /]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql //安装SVN
[root@CentOS /]# cd /etc/httpd/modules
[root@CentOS modules]# ls | grep svn //确认已已安装了SVN模块
mod_authz_svn.so
mod_dav_svn.so
验证安装
检验已经安装的SVN版本信息
[root@CentOS modules]# svnserve --version
svnserve,版本 1.6.11 (r934486)
编译于 Mar 6 2014,10:49:10
版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。
下列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
Cyrus SASL 认证可用。
代码库创建
SVN安装完后还需要建立SVN库
[root@CentOS modules]# mkdir -p /opt/svn/repositories
[root@CentOS modules]# svnadmin create /opt/svn/repositories
执行上面的命令后,自动建立repositories
库,查看/opt/svn/repositories
文件夹发现包含了conf
, db
,format
,hooks
, locks
, README.txt
等文件,说明一个SVN库已经建立。
配置代码库
进入conf
文件夹
[root@CentOS modules]# cd /opt/svn/repositories/conf
用户密码配置
[root@CentOS conf]# vi + passwd
修改passwd内容
[users]
# harry = harryssecret
# sally = sallyssecret
username=123456
权限控制authz配置
[root@CentOS conf]# vi + authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
#设置[/]代表根目录下所有的资源
[/]
username=rw
服务svnserve.conf配置
[root@CentOS conf]# vi + svnserve.conf
追加以下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
配置防火墙端口
[root@CentOS conf]# vi /etc/sysconfig/iptables
添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
[root@CentOS conf]# vi /etc/sysconfig/iptables
启动SVN
[root@CentOS conf]# svnserve -d -r /opt/svn/repositories
查看SVN进程
[root@CentOS conf]# ps -ef|grep svn|grep -v grep
root 1755 1 0 19:43 ? 00:00:00 svnserve -d -r /opt/svn/repositories
检测SVN 端口
[root@CentOS conf]# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
停止SVN
[root@CentOS conf]# killall svnserve
测试服务器
# svn co svn://192.168.1.5/test
按提示先输入用户密码,再输入svn的用户名、密码,就可以了。
# cd test
# vim main.c
# svn add main.c
# svn commit main.c -m "comment"
Adding main.c
Transmitting file data .
Committed revision 2. ( 测试提交成功 )
配置SVN服务器的HHTP支持
-
创建一个svn用户组,将
www-data
(apache的默认用户名)加入到svn组中。 -
将资源库的
owner
设成www-data
,group
设成svn
。下面三条用于修改权限sudo chown -R www-data myproject sudo chgrp -R svn myproject sudo chmod -R g+rwx myproject //这条命令允许用户对版本库进行读写操作,即可以更新,可以提交
-
确认
libapache2-svn
已经安装,/etc/apache2/mods-enabled
下面有dav.load
,dav_svn.load
和dav_svn.conf
三个文件。 -
修改
dav_svn.conf
文件。去掉下面行的注释。<Location /svn> (apache下的位置) DAV svn SVNPath /home/svn/myproject (指明资源库的路径) 或 SVNParentPath /home/svn (如果有多个库,使用该选项) SVNListParentPath on (打开这个选项可以列出ParentPath下面的所有库) AuthType Basic (认证类型为基本认证 ) AuthName "Subversion Repository" (认证名称,将在IE界面弹出一个对话框,其标题) AuthUserFile /etc/apache2/dav_svn.passwd (认证密码文件) # AuthzSVNAcessFile /etc/apache2/dav_svn.authz (目录权限文件) Require valid-user (要求验证用户,即不能匿名访问) </Location>
-
通过sudo htpasswd -c /etc/apache2/dav_svn.passwd abc创建用户abc并按照提示设置密码,网页认证的时候使用该用户名和密码登录。后面再添加用户的时候去掉-c选项。
配好以后就可以通过Http页面来访问SVN了。
Comments
comments powered by Disqus