说明
服务器操作系统:CentOS 6.6
关闭防火墙,SElinux
实现
1、在服务器上安装配置SVN服务;
2、SVN服务支持svnserve独立服务模式访问;
3、SVN服务支持Apache的http模式访问。
一、安装
1.安装apache
#安装Apache
$ yum install httpd
#设置开机启动
$ chkconfig httpd on
#启动Apache
$ service httpd start
#查看Apache版本信息
$ httpd -version
2.安装subversion
#使用yum命令在线安装
$ yum install subversion
#查看svn版本信息
$ svnserve --version
3.配置svn
1)创建svn版本库
#创建svn版本库存放目录
$ mkdir -p /home/svn
$ cd /home/svn
#创建svn版本库project
$ svnadmin create /home/svn/project
2)设置配置文件
#创建配置文件目录
$ mkdir -p /home/svn/conf
#拷贝账号密码配置文件模板
$ cp /home/svn/project/conf/passwd /home/svn/conf/passwd
#拷贝目录权限配置文件模板
$ cp /home/svn/project/conf/authz /home/svn/conf/authz
#拷贝全局配置文件模板
$ cp /home/svn/project/conf/svnserve.conf /home/svn/conf/svnserve.conf
#编辑passwd文件
$ vim /home/svn/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
pengqiang=123456
:wq! #保存退出
#编辑authz文件
$ vim /home/svn/conf/authz
[groups]
admin=pengqiang
[/]
@admin = rw
* =
:wq! #保存退出
#配置svnserve.conf全局文件
$ vim /home/svn/conf/svnserve.conf
[general]
#禁止匿名访问,设置为none。默认为read,参数:read,write,none
anon-access=none
#授权用户写权限
auth-access=write
#用户账号密码文件路径,可以写绝对路径
password-db=/home/svn/conf/passwd
#访问控制权限文件路径,可以写绝对路径
authz-db=/home/svn/conf/authz
#每个SVN项目的认证命,会在认证提示里显示,建议写项目名称
realm=svn
:wq! #保存退出
4.启动SVN
#启动svnserve服务,--config-file后面跟全局配置参数文件
$ svnserve -d -r /home/svn --config-file /home/svn/conf/svnserve.conf --listen-port 3690
#关闭svnserve
$ ps -ef|grep svn|grep -v grep #查看进程
$ netstat -ln |grep 3690 #检查端口
$ kill -9 线程
$ killall svnserve #关闭svn
5.设置svn服务开机启动
#编辑,添加以下代码
$ vi /etc/init.d/svn
#!/bin/sh
# processname: svn
svn_bin=/usr/bin
svn_port=3690
svn_home=/home/svn
svn_config=/home/svn/conf/svnserve.conf
if [ ! -f "$svn_bin/svnserve" ]
then
echo "svnserver startup: cannot start"
exit
fi
case "$1" in
start)
echo "Starting svnserve..."
$svn_bin/svnserve -d -r $svn_home --config-file $svn_config --listen-port $svn_port
echo "Successfully!"
;;
stop)
echo "Stoping svnserve..."
killall svnserve
echo "Successfully!"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac
:wq! #保存退出
$ chmod +x /etc/init.d/svn #添加执行权限
$ chkconfig svn on #开机自启动
$ service svn start #启动
二、配置svn支持http访问
1、创建账号密码认证文件
$ htpasswd -cm /home/svn/conf/http_passwd pengqiang
根据提示输入2次密码即可。
注意:
/home/svn/conf/目录下面passwd文件是svnserve独立服务器使用的认证文件,密码没有加密,明文显示。
/home/svn/conf/目录下面http_passwd文件是Apache的http模式使用的认证文件,密码使用MD5加密。
passwd和http_passwd文件中,账号密码必须设置相同。
2、设置Apache配置文件
$ vim /etc/httpd/conf.d/subversion.conf
#编辑,在最后添加以下代码
<Location /svn>
DAV svn
#SVNPath /home/svn
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /home/svn/conf/authz
AuthUserFile /home/svn/conf/http_passwd
Require valid-user
</Location>
:wq! #保存退出
3、设置目录权限(重要,否则http无权限访问svn服务)
#设置svn目录所有者为Apache服务运行账号apache
$ chown -R apache:apache /home/svn
4、重启Apache服务
$ service httpd restart
三、测试
1.TortoiseSVN工具验证
Windows下安装svn客户端TortoiseSVN。
TortoiseSVN下载地址:http://tortoisesvn.net/downloads.html
安装完成之后,桌面-右键单击,选择TortoiseSVN-版本库浏览器
URL输入:svn://192.168.xxx.xxx/project
用户名:pengqiang
密码:123456
2.浏览器验证http
URL输入:http://192.168.xx.xxx/svn/project
参考:http://www.osyunwei.com/archives/9145.html