1.运行以下命令安装SVN
yum install subversion
2.运行以下命令创建目录
mkdir /var/svn
3.依次运行以下命令创建版本库
cd /var/svn
svnadmin create /var/svn/test.php2013.com
4.依次运行以下命令查看自动生成的版本库文件。
cd test.php2013.com
ls
5.设置账号密码
vim conf/passwd
#(注意等号两端要有一个空格)
hly = huangliuyuans (username = passwd)
6.设置权限
vim conf/authz
在末尾添加如下代码(其中,r表示读,w表示写):
[/]
#username=passwd
hly=rw
*=
7.修改svnserve.conf文件
vim conf/svnserve.conf
#开启下面的项 最前尽量不要有空格
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/test.php2013.com #认证空间名,版本库所在目录
8.启动SVN版本库
svnserve -d -r /var/svn #库根目录
9.查看SVN服务是否开启
ps -ef |grep svn
10.添加安全组规则 放行TCP 3690端口 (阿里云ecs安全入方向 & 宝塔面板加防火墙)
11.checkout一份SVN(从svn版本库到web服务器根目录)
#svn co svn://127.0.0.1/test.php2013.com WEB服务器根目录
svn co svn://127.0.0.1/test.php2013.com /www/wwwroot/test.php2013.com #svn://127.0.0.1/ 为svn根目录 svn://127.0.0.1/test.php2013.com 为项目目录
提示:Password for 'root': (回车跳过)
提示:Username:(svn的username)
提示:Password for 'hly':(svn的username)
Store password unencrypted (yes/no)? yes
12.建立同步脚本
cd /var/svn/test.php2013.com/hooks/
cp post-commit.tmpl post-commit
13.编辑post-commit,在文件最后追加以下内容
export LANG=zh_CN.UTF-8 #(这句话比较重要,如果客户端跟服务器编码不一样会出现同步失败)
SVN_PATH=/usr/bin/svn #代表你的svn服务文件地址 如果是通过yum安装的话,或者已经注册了svn服务,则可以直接使用svn,不需要输入全路径)
WEB_PATH=/www/wwwroot/test.php2013.com #你的web目录(将要同步过去的web项目路径)
LOG_PATH=/tmp/svn_update.log #同步日志
/usr/bin/chown -R www. /www/wwwroot/test.php2013.com
$SVN_PATH update $WEB_PATH --username hly --password Huangliuyuan33
chown -R 766 $WEB_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
保存退出
修改 post-commit 权限
chmod +x post-commit
svn://外网ip/test.php2013.com 就可以了