linux下通过yum安装svn及配置,并且同步到WEB

2016-08-24 技术资料 81 hits
1.环境centos6.42.安装svnyum -y install subversion3.配置建立版本库目录mkdir /www/svndatasvnserve -d -r /www/svndata4.建立版本库创建一个新的Subversion项目svnadmin create /www/svndata/ziyiai_com配置允许用户ziyiai_com访问cd /www/svndata/z

1.环境
centos6.4

2.安装svn
yum -y install subversion

3.配置

建立版本库目录
mkdir /www/svndata

svnserve -d -r /www/svndata

4.建立版本库

创建一个新的Subversion项目
svnadmin create /www/svndata/ziyiai_com

配置允许用户ziyiai_com访问
cd /www/svndata/ziyiai_com/conf

vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd

注:修改的文件前面不能有空格,否则启动svn server出错

vi passwd
[users]
#<用户1> = <密码1>
#<用户2> = <密码2>
ziyiai_com=123456

5.客户端连接
svn co svn://ip/ziyiai_com
用户名:ziyiai_com

密码:123456

===============================================================

6.实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中

1)设置WEB服务器根目录为/www/web/ziyiai_com/public_html

2)checkout一份SVN

svn co svn://localhost/ziyiai_com /www/web/ziyiai_com/public_html

修改权限为WEB用户

chown -R www:www /www/web/ziyiai_com/public_html

3)建立同步脚本

cd /www/svndata/ziyiai_com/hooks/

cp post-commit.tmpl post-commit

编辑post-commit,在文件最后添加以下内容

 

#!/bin/sh
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2"
SVN_PATH=/usr/bin/svn
WEB_PATH=/www/web/ziyiai_com/public_html
LOG_PATH=/svndata/ziyiai_com/log.log
echo "##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` "##################" >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH update --username ziyiai_com--password 123456 $WEB_PATH --no-auth-cache >> $LOG_PATH
chown -R www:www $WEB_PATH

 

增加脚本执行权限

chmod +x post-commit

最后操作是关闭服务然再打开服务:

svn服务的关闭:

killall svnserve

svn开启:

svnserve -d -r /www/svndata

 

===============================================================

SVN自动同步程序执行流程:
1、用户提交文件到SVN服务器,提交操作成功后触发post-commit脚本
2、在post-commit版本文件中使用php_script.php执行PHP脚本
3、在PHP脚本中通过exec系统调用更新服务器上的版本库工作副本
4、根据更新操作结果日志,对另一个SVN版本库进行对应的操作处理