【服务器手顺】CentOS 6 安装 SVN
CentOS SVN 安装1.SVN 简介 由于前些年在版本的管理上采用的都是CVS 系统,总体上而言还是很优秀的,经过了多年 的项目开发管理经历,在使用CVS 系统在管理中大型的软件项目时还是遇到了
CentOS SVN 安装
1.SVN 简介 由于前些年在版本的管理上采用的都是CVS 系统,总体上而言还是很优秀的,经过了多年 的项目开发管理经历,在使用CVS 系统在管理中大型的软件项目时还是遇到了很多不可克服的
缺陷和局限性,主要表现在如下的几个方向:
1. 无法进行文件名称的修改活动,这样一来就会导致必须先删除该文件再上传,丢失了 历史信息,要不就必须到服务上将xxx,v 文件进行改名(我采用这种方法,不过总是 找管理员太不方便了);
2. 目录名称没有被管理,这样就不能进行改名等动作,其实项目的目录结构对于项目的 成功起了非常重要的作用,每次也只能到服务器上进行修改;
3. 项目的分支代价太高,需要对每一个文件都进行标记,对于大的项目耗时太长,并且 基本上不能删除废弃了的分支和标记,因为那样很容易导致项目仓库的损坏,我就遇 到了好多次这种让人发狂的情况;
4. 对于文件二进制和文本的处理经常会出现混乱,结果就使将二进制文件当作文本上传 后内容被扩展导致丢失,因为有些时候二进制文件的扩展名和某些文本文件的扩展名 相同了,所以导致CVS 识别就会出错。
可以安装并配置subversion (简称svn )系统,使用svn 来替换CVS 系统,以解决上述问题。
Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。下面我讲解的是基于Apache Http Server的Subversion ,这样做几个好处
A. 能使用WebDAV 协议。
B. 能使用浏览器作为客户端工具浏览源码仓库。
C. 可以很容易的支持到SSPI (Windows 域认证)和LDAP (AD ?),这些都是Apache 本身就支持的。
D. 能得到比较完善的Apache 安全认证系统,比如SSL 加密连接。
2.svn 安装
安装系统:CentOS
安装方式:yum install(这种方式比较简单,如果用源码安装容易产生版本兼容的问题) 建议:
最好将svn 系统安装在Linux 操作系统环境下,这样一来系统比较的稳定可靠,同时也可以减少很多的病毒和攻击的服务器日常维护工作量, 我将svn 安装在了CentOS 的服务器版本下。 安装:
yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
,确定已经安装了svn 模块:mod_dav_svn
#cd /etc/httpd/modules
#ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
如果要确认是否成功的安装了svn 可以通过如下的命令进行验证:
svn --version
显示如下,表示正常:
svn, version 1.1.4 (r13838)
compiled Aug 21 2005, 20:56:55
Copyright (C) 2000-2004 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/). The following repository access (RA) modules are available:
* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
- handles 'http' schema
- handles 'https' schema
* ra_local : Module for accessing a repository on local disk.
- handles 'file' schema
* ra_svn : Module for accessing a repository using the svn network protocol.
- handles 'svn' schema
3.apache 的配置
配置/etc/httpd/conf/httpd.conf
(httpd 的安装目录, 一般是/etc/httpd或/usr/local/appache2)
进入到/etc/conf目录下用vim 打开httpd.conf 配置文件进行选项的修改:
a. KeepAlive选项(可选)
该选项可以修改也可以不修改,主要是为了提高http 协议访问的性能,可以 使得svn 仓库的访问更快,KeepAlive 表示可以保持http 的永久性TCP 连接, 省去了每次都需要进行重建TCP 连接的巨大开销,找到如下几个选项并修改: KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
b. ServerAdmin/ServerName选项(可选)
对于需要对系统进行管理的可以在ServerAdmin 选项设置成为管理员的email
,
地址,这样在出现问题时apache 会自动发送邮件到该地址中;而ServerName 必须设置为本服务器的域名,如xxx.xxx.cn:80。
为了使客户端能够通过Apache 来访问SVN 档案库,Apache 需要加载一个特殊的模块mod_dav_svn。如果您的Apache 是按照与预设目录安装的,mod_dav_svn 模块应该会安装在 Apache 安装位置 (默认路径是 /usr/local/apache2) 的 modules 子目录内。同时在Apache 的配置文件httpd.conf (默认路径为/usr/local/apache2/conf)中已经使用LoadModule 指令加载了该模块(如果没有,请手动添加)LoadModule 指令的语法很简单, 就是将一个具名模块对映到共享链接库在磁盘上的位置:
LoadModule dav_svn_module modules/mod_dav_svn.so
注意这个指令必须出现在其它的 Subversion 相关指令之前。
还要加载mod_authz_svn.so模块
如图:
测试Apache 是否可以正常启动:
#vim /etc/httpd/conf/httpd.conf -- Edit what you need and save the file
#service httpd start
#chkconfig httpd on
在浏览器中访问:http://localhost, 如果能看到Apache 的页面,则说明Apache 已经正常启动。
,Apache 命令:
启动:apachectl -k start
关闭:apachectl -k stop
重启:apachectl -k restart
查看日志:tail -f /etc/httpd/logs/error-log
4.svn 的配置
进入到/etc/httpd/conf.d目录下用vim 打开subversion.conf 配置文件进行选项的
修改:
a. module的配置
一定要保证下面的两句话存在于配置文件中,否则无法在如svn 的模块,就
无法访问svn 的仓库了:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
b. 仓库目录配置
项目仓库就是用于存放项目目录结构的服务器目录,一般情况下Linux 的规则时间容易变化的内容存放在/var目录下,所以我们需要在/var目录下创建一个svn 目录,这样所有的项目的根目录都作为/var/svn/目录下的一级子目录了,这样以来就可以在一个仓库目录下存放多个项目了。
下面将使用myapp 这个仓库来配置Subversion
# mkdir -p /var/svn
# cd /var/svn
# svnadmin create myapp
# chown -R apache. apache svn
# chcon -R –t httpd_sys_content_t svn
# vi /etc/httpd/conf.d/subversion.conf
加入以下配置
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
DAV svn
,SVNParentPath /var/svn
#
# # Limit write permission to list of valid users.
#
#
AuthType Basic
AuthName "Authorization Realm"
AuthzSVNAccessFile /var/svn/myapp/conf/authz
AuthUserFile /var/svn/passwd
Require valid-user
#
下面建立可访问用户文件
# htpasswd -c /var/svn/passwd justin
要增加用户, 则使用下面命令
# htpasswd /var/svn/passwd other
vim /var/svn/myapp/conf/authz(针对不同用户给予不同权限)
,
重起Apache
# service httpd restart
Subversion 部分安装完成,打开浏览器访问http://localhost/svn/myapp即可看到效果。