运维朋友都知道,常常会配合开发人员搭建一些他们需要的环境,来提高开发工作效率,他们每天面对的无非就是代码,所以代码的可用性和管理性对开发至关重要的,开发公司每接到一个项目就是一个团队来开发,这样多人同时对一些代码进行修改,会面临一些问题,比如:误删除,对同一文件修改发生冲突,对某些人不让有所有权限,都会造成工作效率降低,要想解决这些问题就需要有一个专业的版本管理系统来集中管理这些代码,这样的版本管理系统很多,我们这次使用的是SVN(subversion),是cvs接班人,是现在开源软件使用最多的版本管理软件,不多说了,开始搭建一个属于自己的版本控制系统吧。
SVN服务器有2种运行方式:独立服务器和借助apache运行(Web/DAV)。
1、安装依赖包
[root@localhost ~]# yum install gcc gcc-++ make pcre-develzlib-devel -y
[root@localhost ~]# tar zxvf apr-1.4.6.tar.gz
[root@localhost ~]# cd apr-1.4.6
[root@localhost apr-1.4.6]# ./configure --prefix=/usr/local/apr
[root@localhost ~]# make && make install
[root@localhost ~]# tar zxvf apr-util-1.4.1.tar.gz
[root@localhost ~]# cd apr-util-1.4.1
[root@localhostapr-util-1.4.1]# ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr
[root@localhost ~]# make && make install
2、安装Apache
下载:http://mirrors.cnnic.cn/apache/httpd/
[root@localhost ~]# tar zxvf httpd-2.4.7.tar.gz
[root@localhost ~]# cd httpd-2.4.7
[root@localhost httpd-2.4.7]#./configure --prefix=/usr/local/apache --enable-dav --enable-so--enable-rewrite --enable-maintainer-mode --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
[root@localhost ~]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
[root@localhost ~]# sed -i's/#ServerName.*/ServerName localhost/' /usr/local/apache/conf/httpd.conf
3、安装SVN
SVN需要需要SQLite数据库支持,我们先安装SQLite
下载:http://www.sqlite.org/download.html
1234 [root@localhost ~]# tar zxvf sqlite-autoconf-3080200.tar.gz
[root@localhost ~]# cd sqlite-autoconf-3080200
[root@localhostsqlite-autoconf-3080200]# ./configure
[root@localhostsqlite-autoconf-3080200]# make && make install
#安装SVN
下载:http://subversion.apache.org/download
[root@localhost ~]# tar zxvf subversion-1.8.5.tar.gz
[root@localhost ~]# cd subversion-1.8.5
[root@localhostsubversion-1.8.5]# ./configure --prefix=/usr/local/subversion--with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util/
[root@localhostsubversion-1.8.5]# make && make install
./confiure报错:这是因为apsx文件没有指定perl执行程序位置
apache/bin/apxs:/usr/local/perl: bad interpreter: No such file or directory
configure: error: no - APXSrefers to an old version of Apache
解决:[root@localhost ~]# vi /usr/local/apache/bin/apxs
#!/replace/with/path/to/perl/interpreter–w #将第一行修改为#!/usr/bin/perl –w即可
#添加环境变量
[root@localhost ~]# echo "PATH=$PATH/:/usr/local/subversion/bin" >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# svnserve –version #显示版本信息表示正常
4、apache与svn整合
#创建组、用户并加载svn库
[root@localhost ~]# groupadd svn
[root@localhost ~]# useradd -g svn -s /sbin/nologin svn
[root@localhostsubversion-1.8.5]# cp subversion/mod_dav_svn/.libs/mod_dav_svn.so/usr/local/apache/modules/
[root@localhostsubversion-1.8.5]# cp subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache/modules/
[root@localhost ~]# vi/usr/local/apache/conf/httpd.conf
User svn
Group svn
LoadModule dav_svn_modulemodules/mod_dav_svn.so
LoadModule authz_svn_modulemodules/mod_authz_svn.so
5、配置Web/DAV
#创建svn仓库
[root@localhost ~]# mkdir /svn
[root@localhost ~]# svnadmin create /svn/test
[root@localhost ~]# vi /usr/local/apache/conf/httpd.conf
<Location /svn> #url访问路径
DAV svn #声明
SVNParentPath /svn #svn仓库根目录
AuthType Basic #基本认证
AuthName "PleaseLogin" #登陆时提示信息
AuthUserFile/usr/local/apache/.passwd #用户密码文件
Require valid-user #允许所有用户访问
</Location>
#生成passwd文件
[root@localhost ~]# /usr/local/apache/bin/htpasswd -c -m /usr/local/apache/.passwd user1
[root@localhost ~]# chown :svn/usr/local/apache/.passwd
[root@localhost ~]# servicehttpd restart
访问http://192.168.1.153/svn会提示输入用户名和密码
6、下载SVN客户端和语言包:http://tortoisesvn.net/downloads.html
安装很简单,过程略…
打开软件后输入URL http://192.168.1.153/svn/test
至此SVN安装配置完成!
推荐阅读:
Linux中Subversion配置实例 http://www.linuxidc.com/Linux/2012-02/53109.htm
CentOS 6.2 SVN搭建 (YUM安装) http://www.linuxidc.com/Linux/2013-10/91903.htm
Apache+SVN搭建SVN服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm
Windows下SVN服务器搭建和使用 + 客户端重新设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm
Ubuntu Server 12.04 安装 SVN 并迁移 Virtual SVN数据 http://www.linuxidc.com/Linux/2013-05/84695.htm
Ubuntu Server搭建svn服务以及迁移方法 http://www.linuxidc.com/Linux/2013-05/84693.htm
借助网盘搭建SVN服务器 http://www.linuxidc.com/Linux/2013-10/91271.htm
CentOS 6.3下Apache+SVN部署Web版本同步 http://www.linuxidc.com/Linux/2013-07/86955.htm