在linux上搭建SVN服务器并自动更新至WEB目录
1、仓库放在 /var/svn/ 目录下,并且仓库名为 project
2、创建用户组user,该组下添加两个成员user1、user2,密码直接用用户名,两用户可以checkout代码和提交代码
3、利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web目录,在这里,我的web目录在 /var/www/html 下
一、搭建svn环境并创建仓库:
1、安装Subversion:
yum install -y subversion
2、检测是否安装成功(查看svn版本号)
svnserve --version
3、创建版本库
先建目录 mkdir /var/svn
CD到这个目录 cd /var/svn
创建版本库 svnadmin create /var/svn/project cd project (会看到自动生成的版本库文件 conf db format hooks locks README.txt)
二、创建用户组及用户:
1、 进入版本库中的配置目录conf(三个文件): svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。
2、修改权限配置文件:vim authz
3、配置用户名命令文件:vim passwd
4、配置SVN服务综合配置文件svnserve.conf
找到以下配置项,将前面的#号去掉,然后做相应的配置
anon-access = none 匿名用户访问权限:无
auth-access = write 普通用户访问权限:读、写
password-db = passwd 密码文件
authz-db = authz 权限配置文件
realm = /var/svn/project 版本库所在
注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错
5、启动svn服务:
svnserve -d -r /var/svn
如果提示:svnserve: E000098: Can't bind server socket: Address already in use
证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务
停止svn服务 killall svnserve
再运行 svnserve -d -r /var/svn,进行启动服务
6、测试服务器:
我们在web目录测试(/www/html)
cd //www/html
svn co svn://localhost/project (如果提示:Checked out revision 1. 表示checkout成功)
我们添加新文件来测试是否提交成功
cd //www/html
touch index.php
svn add index.php 成功的话会显示 (A index.php)
svn commit index.php -m "测试提交文件" (如果成功会显示:Adding index.php Transmitting file data . Committed revision 2. 则表示我们svn服务器搭建成功!文件已经能够推送了。)
7、本地拉取、推送
输入用户名称和密码(如果失败去看看 端口3690是否被禁用 )
三、实现svn更新自动同步到web目录:
1、在web目录中checkout版本库
这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:
svn co svn://localhost/project /www/html --username user1(SVN账号) --user1(SVN密码)
进入/var/svn/project/hooks下,建立post-commit文件:
cd /var/svn/project/hooks
vim post-commit
//在该文件里添加如下代码,保存
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn //这里不用改
WEB_PATH=/www/html //web目录,如果你的不同,可以改
//这里的用户随便一个就好
$SVN_PATH update $WEB_PATH --username 'user1' --password 'user1' --no-auth-cache
保存退出。
修改post-commit用户为www目录用户
chown apache:apache post-commit //我的 /home/www 的用户组和所有者都是apache
给post-commit 执行权限:
chmod 755 post-commit
本博客主要参考了:http://blog.csdn.net/baidu_30000217/article/details/51396016?locationNum=1
在linux上搭建SVN服务器并自动更新至WEB目录的更多相关文章
- Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法
首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion ...
- CentOS下安装配置SVN服务器并自动同步到web目录
一.安装 yum install subversion测试是否安装成功 /usr/bin/svnserve --version如提示以下内容,说明已安装成功 svnserve,版本 1.6.11 (r ...
- linux上搭建svn服务器
1.检查当前版本,没有的话用yum安装rpm -qa subversion 2.安装yum install subversion -y 2.建库mkdir -p /home/svn/projectsv ...
- Linux(CentOS)搭建SVN服务器全攻略
虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装#yum ...
- 在路由器上搭建SVN服务器
在路由器上搭建SVN服务器 SVN托管服务大家都不陌生了,我最早开始用的是谷歌提供的SVN,因为在上面托管的项目都是开源的,所以当有些项目不方便在网上公开的时候,就需要自己搭建SVN服务器了.wind ...
- 使用Linux(CentOS)搭建SVN服务器全攻略
虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装 #yu ...
- CentOS Linux上搭建PPPoE服务器及拨号设置
CentOS Linux上搭建PPPoE服务器及拨号设置 搭建PPPoE,成功了的话,就觉得超级简单,在CentOS Linux更是5步左右就能搞定. 1.安装pppoe,安装完成后,会有pppoe- ...
- 嵌入式Linux上通过boa服务器实现cgi/html的web上网【转】
转自:http://blog.csdn.net/tianmohust/article/details/6595996 版权声明:本文为博主原创文章,未经博主允许不得转载. 嵌入式Linux上通过boa ...
- 如何在win上搭建SVN服务器
本博文转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本, ...
随机推荐
- [转]Ubuntu18.04下安装搜狗输入法
鏈接地址:https://blog.csdn.net/lupengCSDN/article/details/80279177
- 大网扫描在发现APT组织方面的一个应用
如何发现CobalStike服务端? 答: 扫HTTP response header: "HTTP/1.1 404 Not Found" balaba-"Server& ...
- 【神经网络与深度学习】【计算机视觉】图解YOLO
图解YOLO 晓雷 3 个月前 YOLO核心思想:从R-CNN到Fast R-CNN一直采用的思路是proposal+分类 (proposal 提供位置信息, 分类提供类别信息)精度已经很高,但是速度 ...
- 最新 梆梆安全java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.梆梆安全等10家互联网公司的校招Offer,因为某些自身原因最终选择了梆梆安全.6.7月主要是做系统复习.项目复盘.Leet ...
- laravel 配置自动加载多路由文件
在 app\Providers\RouteServiceProvider文件下增加方法&注册: 增加之后就可以在routers下建立api文件夹,在里面添加路由了
- Java开发笔记(一百零九)XML报文的定义和解析
前面介绍了JSON格式的报文解析,虽然json串短小精悍,也能有效表达层次结构,但是每个元素只能找到对应的元素值,不能体现更丰富的样式特征.比如某个元素除了要传输它的字符串文本,还想传输该文本的类型. ...
- Yii2实现手机二维码扫一扫登入
一 建数据表 scancode randnumber字段存储的是一个随机码,可以用uuid token是一个提取用户信息的字段,说白了就是user表的唯一键,如果不担心用户id外泄,用user_id ...
- 《Docker Deep Dive》Note - 纵观 Docker
<Docker Deep Dive>Note 由于GFW的隔离,国内拉取镜像会报TLS handshake timeout的错误:需要配置 registry-mirrors 为国内源解决这 ...
- 分享大麦UWP版本开发历程-02.内容“高度/宽度”不同的列表展示
一个成型的产品,肯定是经过了产品经理出的UE,美工设计的UI,最终到我们手里Coding,这里面最少3个人,最多就不知道会有多少人参与了.每个人脑子想的都是不一样的,我就不粘贴那个“XX眼中的XX”那 ...
- 一张图看懂SharpImage
通过下面的图片,可以瞬间看懂整个类库的脉络.图片比较大,如果看不清,可