Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置

看到svn是不是有点狠low的感觉
写这篇的目的1:是记录下安装和配置的方法;2:是记录下自己在配置过程中遇到的问题和如何解决的,防止初学者走弯路;

一、前提

首先一最好有一台自己服务器,我的服务器配置在Ubuntu系统开发环境搭建一:MySQL的安装提到;
二、如果你想把你通过svn提交的代码同步到本机的nginx服务器的根目录,你需要看下Ubuntu系统开发环境搭建二:php+nginx的安装,安装好php开发环境

接着来看下svn的安装:

二、svn的安装

svn的安装很简单使用apt命令

apt-get install subversion

三、svn仓库的创建与配置

1、创建一个名称为svn的文件夹,文件夹里面用来创建数据仓库
备注:这里我在home目录下创建一个svn文件夹
切换到home文件夹,执行以下命令:

mkdir svn

2、创建一个数据仓库(一个目录下可以创建多个仓库)
备注:这里我创建一个名称为huishouzhi的数据仓库

svnadmin create huishouzhi

3、启动和停止svn服务

启动svn服务

svnserve -d -r /home/svn

停止svn服务

killall svnserve

查看svn服务的状态

netstat -an |grep 3690
A1F0D8C2-F9DB-4FBF-BD2D-8E209D52D172.png

说明svn处于启动状态
4、设置svn的访问权限
目录切换到你创建的数据仓库的目录;
这里我切换到huishouzhi目录:


数据仓库目录.png

先来看下文件夹
conf:就是你要配置权限的地方
db:是存储数据的地方
hooks:钩子,这里面的代码在svn提交代码的时候回被触发,在接下来配置代码同步的时候会用到
locks:暂时不用管

目录切换到conf:

1、打开svnserve.conf 文件,取消anon-access = none(修改read为none)
auth-access = write password-db = passwd authz-db = authz 前面的注释,注意:前面不要留空格

Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置_第1张图片
9ECD5909-CB3B-4B05-982B-B02F99FE62C9.png

2、打开passwd文件:这个文件主要是存储svn用户信息,注意这里账号密码都是明文存储的。
直接把我的密码黏上,哈,是不是特有奉献精神
Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置_第2张图片
passwd文件内容.png

3、打开authz文件:这里可以给你在passwd文件里设置的用户添加权限
还是直接上图吧
Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置_第3张图片
authz权限.png

到目前为止你就可以远程连接svn,提交代码都是木有问题的


Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置_第4张图片
svn连接成功.png

四、svn代码自动同步带nginx根目录设置

背景:有时候我们在进行php开发的时候需要在本地提交svn代码后,能自动把提交的代码同步到nginx的根目录下(我这里的根目录是var/www),这样在浏览器中就能直接预览了。
原理:把服务器作为一个svn客户端,首先需要把svn仓库的代码导出到nginx的根目录下;在以后每次提交代码的时候,触发hooks下的脚本,自动把提交的代码更新到nginx根目录就可以了。

1、首先在nginx的根目录下执行以下命令:

svn checkout svn://127.0.0.1/huishouzhi

2、目录切换到hooks文件夹下
执行命令:创建一个post-commit文件

vi post-commit

黏贴以下代码

#!/bin/sh
export LANG=zh_CN.UTF-8   
REPOS="$1"
REV="$2"
LOG_PATH=/home/svn/huishouzhi/conf/svn.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
svn update /var/www/huishouzhi --username admin --password admin.huishouzhi --no-auth-cache  >> $LOG_PATH
exit 0

备注:其中admin admin.huishouzhi 可以是你之前设置的任何一个svn的账户

END ——有什么问题随时交流

你可能感兴趣的:(Ubuntu系统开发环境搭建三:svn的安装与代码自动同步设置)