设为首页 加入收藏

TOP

使用Subversion实现网站自动更新(一)
2015-11-21 01:30:44 来源: 作者: 【 】 浏览:0
Tags:使用 Subversion 实现 网站 自动 更新

Subversion概述
??? 概述
??? Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统。
??? 网站更新拓扑结构
???

??? 安装WEB服务器(Nginx)
??? 略
安装svn独立服务器----->本地测试服
??? 安装subversion Server
yuminstall subversion –y
??? 创建版本库
???
mkdir -pv/work/svndata
svnadmin? create /work/svndata/web
??? 将网站目录导入版本库
export LANG="zh_CN.UTF-8"
svn import/data/wwwroot/htdocs/ file:///work/svndata/web -m "import"
??? 创建用户密码
cat >/work/svndata/web/conf/passwd
> [users]
> admin =Leerw2015
> EOF
cat >/work/svndata/web/conf/authz
> [/]
> admin = rw
> EOF
cat >/work/svndata/web/conf/svnserve.conf
> [general]
> anon-access =none
> auth-access =write
> password-db =/work/svndata/web/conf/passwd
> authz-db =/work/svndata/web/conf/authz
> EOF
??? 启动svn服务器

svnserve? -d -r /work/svndata/
??? 添加开启启动

echo"svnserve? -d -r/work/svndata/" >> /etc/rc.local
??? 配置钩子脚本,实现自动同步
vim/work/svndata/web/hooks/post-commit
#!/bin/bash
# Author by:Tommy.Gandolf
#
exportLANG="zh_CN.UTF-8"
SVN_PATH=/usr/bin/svn
WEB_PATH=/data/wwwroot/htdocs
USER_NAME=admin
USER_PASSWD=Leerw2015
?
$SVN_PATH checkout--username? $USER_NAME --password$USER_PASSWD svn://127.0.0.1/web $WEB_PATH
??? 添加执行权限

chmod? +x /work/svndata/web/hooks/post-commit
设置SVN客户端自动更细Nginx网站目录
??? Windows下svn客户端使用
??? 下载地址:
??? http://tortoisesvn.net/downloads.html




??? Linux下svn客户端的使用
yuminstall subversion –y
svn checkout? svn://172.16.100.106/website

本地测试服务器---->外网测试服务器
??? 配置本地到外网测试服务器无密码登录
ssh-keygen? -t rsa
ssh-copy-id? -i ~/.ssh/id_rsa.pub? root@172.16.100.105
ssh172.16.100.105 'date'
??? 能正常显示日志就,就证明配置OK
??? Rsync同步目录
??? 假设本地测试已经OK,由于本地是内网环境无固定IP,因此目前需要同步到外网服务器,使用rsync远程同步目录
???

# rsync? -avz /data/wwwroot/htdocs/ root@172.16.100.105:/data/wwwroot/htdocs_test/--exclude='.svn/' --exclude='.settings/' --exclude='.project'


# vim push.sh
??? 脚本内容如下:
#!/bin/bash
# Author by:Tommy.Gandolf
# This script willpush local file to remote Server
?
LOCAL_FILE=/data/wwwroot/htdocs/
REMOTE_FILE=/data/wwwroot/htdocs_test/
USER=root
REMOTE_IP=172.16.100.105
rsync? -avz $LOCAL_FILE$USER@$REMOTE_IP:$REMOTE_FILE --exclude='.svn/' --exclude='.settings/' --exclude='.project'
每次更新OK,只需要执行:sh push.sh 即可更新代码到外网测试服
实现外网测试服务器---->正式服务器的更新
??? WEB1
??????????? 外网正式服务器(Rsync服务器端)
??????????? 安装rsync

wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.0.tar.gz
tar zxvfrsync-3.1.0.tar.gz

cd rsync-3.1.0
./configure--prefix=/usr/
make &&make install
            创建配置文件
mkdir -p/etc/rsyncd
cd /etc/rsyncd/
touch  rsyncd.conf
touch  rsyncd.secrets
touch  rsyncd.motd
chmod  600 rsyncd.secrets
vim rsyncd.conf
uid=nobody
gid=nobody
use chroot=no
max connections=10
strict modes=yes
pid file=/var/run/rsyncd.pid
lockfile=/var/run/rsyncd.lock
logfile=/var/log/rsyncd.log
[data1]
path=/data/wwwroot/htdocs
ignore errors
read only=no
write only=no
hostsallow=172.16.100.0/24
host deny=*
list=no
uid=root
gid=root
auth users=root
secrets file=/etc/rsyncd/rsyncd.secrets
echo"root:1q2w3e4r5t6y" > rsyncd.secrets
chown  root:root rsyncd.secrets
chmod  600 rsyncd.secrets
cat rsyncd.motd
+++++++++++++++++++++++++++++++++++++++++++++++++++
########  WelCome To The Leerw.com SerVice! #######
+++++++++++++++++++++++++++++++++++++++++++++++++++
            启动rsync服务

/usr/bin/rsync--daemon --config=/etc/rsyncd/rsyncd.conf
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mysql学习笔记之五(触发器) 下一篇Redis3.0--集群安装部署

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: