您的位置:首页 > 运维架构 > Linux

Linux 部署 SVN 并同步 web 項目

2017-12-06 00:00 190 查看
使用的是阿里云服务器,Linux 版本 centos7.2。

一、Linux 安装 SVN,步骤如下:

1、yum install subversion

2、输入 rpm -ql subversion 查看安装位置,如下图:



3、创建svn版本库目录

mkdir -p /var/svn/svnrepos

4、创建版本库

svnadmin create /var/svn/svnrepos

执行了这个命令之后会在 /var/svn/svnrepos 目录下生成如下这些文件



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

authz 文件是权限控制文件

passwd 是帐号密码文件

svnserve.conf SVN 服务配置文件

6、设置帐号密码

vi passwd

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

7、设置权限

vi authz

在末尾添加如下代码:

[/]

test=rw

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

8、修改 svnserve.conf 文件

vi svnserve.conf

打开下面的几个注释:

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

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

password-db = passwd #使用哪个文件作为账号文件

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

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

9、启动svn版本库

svnserve -d -r /var/svn/svnrepos

二、win7 系统下连接 SVN

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

https://tortoisesvn.net/downloads.html

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

添加

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

重新载入

firewall-cmd --reload

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



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

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

选择 OK 之后填入用户名、密码即可

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

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



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

cd /var/svn/svnrepos/hooks/

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

cp post-commit.tmpl post-commit

3、假设我的服务器项目文件放在 /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权限即可)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: