Linux 部署 SVN 并同步 web 項目

使用的是阿里云服务器,Linux 版本 centos7.2。html

1、Linux 安装 SVN,步骤以下:shell

一、yum install subversioncentos

二、输入 rpm -ql subversion 查看安装位置,以下图:安全

三、建立svn版本库目录 服务器

 mkdir -p /var/svn/svnrepostcp

四、建立版本库svn

svnadmin create /var/svn/svnrepospost

执行了这个命令以后会在 /var/svn/svnrepos 目录下生成以下这些文件阿里云

五、进入 conf 目录(该svn版本库配置文件)编码

authz 文件是权限控制文件

passwd 是账号密码文件

svnserve.conf SVN 服务配置文件

六、设置账号密码

vi passwd

在 [users] 块中添加用户和密码,格式:账号=密码,如 test=test

七、设置权限

vi authz

在末尾添加以下代码:

[/]

test=rw

意思是版本库的根目录 test 用户对其有读写权限

八、修改 svnserve.conf 文件

vi svnserve.conf

打开下面的几个注释:

anon-access = read #匿名用户可读

auth-access = write #受权用户可写

password-db = passwd #使用哪一个文件做为帐号文件

authz-db = authz #使用哪一个文件做为权限文件

realm = /var/svn/svnrepos # 认证空间名,版本库所在目录

九、启动svn版本库

svnserve -d -r /var/svn/svnrepos

2、win7 系统下链接 SVN

一、安装 SVN 客户端,下载地址:

https://tortoisesvn.net/downloads.html

二、Linux 服务器防火墙开启 3690 端口(SVN 默认端口),阿里云还需设置安全组

添加

firewall-cmd --zone=public --add-port=3690/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

从新载入

firewall-cmd --reload

三、桌面右击选择,SVN Checkout...

在第一栏中输入服务段地址:svn:// ip :3690 /svnrepos(IP 地址加端口号+仓库目录)

第二栏填的是运行出来到本地的目录

选择 OK 以后填入用户名、密码便可

3、 部署项目到 SVN 上,实现本地更新同步到服务器 项目

一、 首先在 win 客户端的tortoiseSVN先创建好项目文件目录,好比 resume

二、进入 SVN 项目仓库钩子所在的目录:

cd /var/svn/svnrepos/hooks/

而后复制备份 post-commit 文件:

cp post-commit.tmpl post-commit

三、假设个人服务器项目文件放在 /var/www/html/

为了可以让SVN仓库同步将项目更新过来,那么首先须要从仓库checkout出项目到该目录下面,

分别执行 shell 命令:

   cd /var/www/html

   svn co svn://localhost/svnrepos/resume --username test --password test

此时在 html 目录下你将会看到你 checkout 出来的项目了,接下来要开始写触发脚本,实如今win本地上传更新你的项目文件的同时,同步更新仓库内的文件。

在 /var/svn/svnrepos/hooks 目录下打开 post-commit 文件,屏蔽里面全部的未屏蔽代码,在文件最后写入:

export LANG=zh_CN.UTF-8 (设置编码,防止报错)

/usr/bin/svn update --username test --password test /var/www/html/resume(同步更新)

(若出现:post-commit错误代码255,应该是脚本权限不对,赋予777权限便可)

相关文章
相关标签/搜索