阅读:4148回复:0
阿里云服务器配置 SVN 服务器与生产站点同步
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 设置编码格式 |
|