手机版
你好,游客 登录 注册
背景:
阅读新闻

CentOS 6.3下Apache+SVN部署Web版本同步

[日期:2013-07-06] 来源:Linux社区  作者:showerlee [字体: ]

前段时间一直忙项目,所以项目初期的svn服务就一直没来得及更新,今天刚好忙完就将自己之前的配置重新总结了下,供大家参考。

svn(subversion)作为一款开源的代码版本管理软件,目前普遍用在项目开发人员将本地的源代码上传到web测试服务器的一种同步软件。

其存储版本数据有2种方式:BDB(一种事务安全型表类型)和默认的FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式相对安全一些。

本篇博文就是为了实现开发人员使用windows下的svn客户端将源代码上传到服务端svn版本库,并利用svn的hock脚本将库数据同步到apache目录,达到实时测试web页面的功能。 

解决方案:

一.环境部署 

操作系统: CentOS6.3 x64

SVN: subversion-1.8.0

apache: httpd-2.4.4

 

svn server(centos6.3 x64): 192.168.7.74

svn client(win7 x64): 192.168.7.129 

1.关闭iptables和SELINUX

# service iptables stop

注:如需开启防火墙,则添加如下一条规则打开svn 3690端口

# iptables -A INPUT -p tcp --dport 3690 -j ACCEPT

# setenforce 0

# vi /etc/sysconfig/selinux

---------------

SELINUX=disabled

--------------- 

2.同步时间

# ntpdate asia.pool.ntp.org 

3.安装apache

传送门:http://www.linuxidc.com/Linux/2013-05/83788.htm 

4.关闭系统自带svnserve

# service svnserve stop

# chkconfig svnserve off

注:本文档为了与apache2.4.4配合不发生兼容问题,所以使用了最新编译版本的svn,这里关闭是为了保证与rpm的版本不冲突.

二.svn安装配置:

(svn server) 

1.下载svn源码包并安装

# wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.8.0.tar.bz2

# tar jxvf subversion-1.8.0.tar.bz2

# cd subversion-1.8.0

创建安装目录

# mkdir -p /usr/local/svn

 

2.安装svn依赖包并解压模块到svn根目录:

# wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip

# unzip sqlite-amalgamation-3071501.zip

# mv sqlite-amalgamation-3071501 sqlite-amalgamation

编译安装

# ./configure --prefix=/usr/local/svn

# make && make install

 

测试安装是否成功

# /usr/local/svn/bin/svnserve --version

-----------------------------

svnserve,版本 1.8.0 (r1490375)

编译于 Jun 29 2013,04:08:41 在 x86_64-unknown-linux-gnu

-----------------------------

注:centos6.3默认装有svn服务端,版本为为1.6.11,其中svn命令在/usr/bin/svn下被环境变量加载,本文档编译的版本为1.8.0,不推荐使用低版本svn指令执行以下操作,可能会有报错。这里为了区分建议直接全路径访问编译后的高版本svn指令执行以下操作。 

3.配置svn

1).建立版本库目录(这个需安装目录区分开)

# mkdir -p /data/svndata/www.example.com

 

2).建立svn版本库

# svnadmin create /data/svndata/www.example.com

注:执行此命令后svn自动在/data/svndata/目录下添加必须的配置文件.

# ls /data/svndata/www.example.com

--------------------

conf db format hooks locks README.txt

--------------------

注:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。

 

3).修改版本库配置文件

# vi /data/svndata/www.example.com/conf/svnserve.conf

修改如下配置

-------------------------------

[general]

# 使非授权用户无法访问

anon-access = none

# 使授权用户有写权限

auth-access = write

# 指明密码文件路径

password-db = passwd

# 访问控制文件

authz-db = authz

# 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。

realm = /data/svndata/www.example.com

--------------------------------

 

4).配置用户

# vi /data/svndata/www.example.com/conf/passwd

添加如下内容

-----------------

[users]

 

user01 = 123456

user02 = 123456

-----------------

注:可以添加多个svn账户,=前后为用户名和密码

 

5).配置权限

# vi /data/svndata/www.example.com/conf/authz

添加以下内容

-------------

[/]

user01 = rw

user02 = r

------------

注:列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问

 

6).启动svn服务

# /usr/local/svn/bin/svnserve -d -r /data/svndata/

 

注:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它端口以及非本地主机。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。

 

7).检查端口

# lsof -i:3690

----------------------------

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

svnserve 65371 root 3u IPv4 82329 0t0 TCP *:svn (LISTEN)

----------------------------

 

8).设置开机启动

# echo "/usr/local/svn/bin/svnserve -d -r /data/svndata/" > /etc/rc.local

 

到此svn初步搭建完毕

linux
相关资讯       svn  CentOS 6.3  CentOS SVN 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款