您的位置:首页 > 其它

阿里云服务器配置 SVN 服务器与生产站点同步

2015-04-24 11:21 239 查看
1.环境
阿里云 centos6.3
2.安装svn
yum -y install subversion
3.配置
建立版本库目录

mkdir /home/svndata
svnserve -d -r /home/svndata
4.建立版本库

创建一个新的Subversion项目

svnadmin create /home/svndata/smsyun

cd /home/svndata/smsyun/conf
(1)vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径

# anon-access = read
# auth-access = write
# password-db = passwd
# realm = smsyun
//这四行,前面的#号和空格去掉,变成
anon-access = none //改成none
auth-access = write
password-db = passwd
realm = smsyun //改成自己的版本库
保存退出
注:修改的文件前面不能有空格,否则启动svn server出错

(2)vi authz //文件,创建svn组和组用户的权限

[group]

smsyun = ddl,shl //创建一个smsyun的组,并制定两个用户ddl和shl

[/] //制定根目录下的权限

@smsyun = rw //smsyun组用户权限为读写

* = r //其他用户只有读权限

保存退出

(3) vi passwd //创建或修改用户密码

[users]
ddl = 123456 //用户名为gep的用户的密码为123456
shl = 123456 //。。。
保存退出

然后要设置自启动

vi /etc/rc.local
打开自启动文件
文件内容如下

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
添加下面一行
svnserve -d -r /usr/local/svnRepo/first

保存退出

svn命令:

lsof -i :3690 查看svn是否启动

ps aux |grep 'svn' 查找所有svn启动的进程

kill -9 2505 杀死2505这个查找到的svn进程

svnserve -d -r /usr/local/svnRepo/first 启动svn(可以把这个放到/etc/local/rc.local文件中,实现开机自启动)

5.客户端连接

svn co svn://ip/smsyun
用户名密码:myname

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

1)设置WEB服务器根目录为/home/www/webroot

2)checkout一份SVN

svn co svn://localhost/smsyun /home/www/smsyun
修改权限为WEB用户
chown -R www:www /home/www/webroot/smsyun
3)建立同步脚本

cd /home/www/svndata/smsyun/hooks/
cp post-commit.tmpl post-commit
编辑post-commit,在文件最后添加以下内容

export LANG=en_US.UTF-8
SVN=/usr/bin/svn
WEB=/home/www/smsyun
$SVN update $WEB --username myname --password myname --no-auth-cache --no-auth-cache 是不记住用户缓存(增加了这个之后就能提交后不出现错误,版本错误除外)

chown -R www:www $WEB
增加脚本执行权限
//可不用
chmod +x post-commit

这样,我们上传svn后,生产站点就能立马显示出来了,自动化程度高了很多。

备注:
设置svn开机自启动
编辑文件 /etc/sysconfig/rc.local
添加一行 svnserve -d -r /var/svn/repositories

为svn用户组赋予权限
chown -R root:svn /home/svndata/smsyun
chmod -R g+rws /home/svndata/smsyun /*给svn组赋予读写权限,可以根据需要更改相应权限*/
chmod -R o-rwx /home/svndata/smsyun /*删除其他无关人员的读、写、执行权限,默认情况下可能其他人有读权限*/

只用配置SVN同步的方法

只记录hooks 下的 post-commit文件内的内容

#!/bin/sh
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
svn update /home/www/webroot --username testuser --password 123456 --no-auth-cache

-username 是svn里的用户名,--password 是SVN用户的密码

--no-auth-cache 是不记住用户缓存(增加了这个之后就能提交后不出现错误,版本错误除外)

export LANG=en_US.UTF-8 设置编码格式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息