Linux CentOS 搭建SVN并用钩子自动实现同步到Web目录

linux安装配置SVN并设置钩子

 

安装说明

系统环境:CentOS-6.3
安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件

检查已安装版本

#检查是否安装了低版本的SVN

1
rpm -qa subversion

#卸载旧版本SVN

1
yum remove subversion

一.安装SVN

1
yum -y install subversion

验证安装

检验已经安装的SVN版本信息

1
svnserve --version

代码库创建

SVN软件安装完成后还需要建立SVN库

1
2
mkdir  -p /www/svndata
svnadmin create /www/svndata/test

执行上面的命令后,自动建立svndata库,查看/www/svndata/test 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

配置代码库

进入上面生成的文件夹conf下,进行配置

1
cd /www/svndata/test/conf

用户密码passwd配置

1
2
cd /www/svndata/test/conf
vim passwd

修改passwd为以下内容:

1
2
3
4
[users]
# harry = harryssecret
# sally = sallyssecret
cqh=123456

权限控制authz配置

1
vim authz

目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

1
2
3
#设置[/]代表根目录下所有的资源
[/]
cqh=rw

服务svnserve.conf配置

1
vim svnserve.conf

追加以下内容:

1
2
3
4
5
6
7
8
9
10
11
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm = My First Repository

启动SVN

1
svnserve -d -r /www/svndata

查看SVN进程

1
2
[root@localhost conf]# ps -ef|grep svn|grep -v grep
root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /www/svndata

检测SVN 端口

1
2
[root@localhost conf]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

停止重启SVN

1
2
[root@localhost password]# killall svnserve     //停止
[root@localhost password]# svnserve -d -r /www/svndata  // 启动

测试

SVN服务已经启动,使用客户端测试连接。 
客户端连接地址:svn://xxx.xxx.xxx.xxx/test
用户名/密码: cqh/123456
测试创建文件夹等操作。

 

二.设置钩子自动更新

实现SVN与WEB同步,可以CO一个出来,也可以直接用自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。 
第一步:建立你的web程序目录

1
mkdir  / var /www/html/test

进入你建立的web程序目录(svn checkout可以简写为co)

1
2
svn checkout svn: //localhost/svntest //不重命名文件夹,直接在当前目录下检出
svn checkout svn: //localhost/svntest test //检出文件并且重命名文件夹

 第二步:在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】

添加脚本内容如下

1
2
3
4
5
export LANG=en_US.UTF-8
SVN=/usr/bin/svn            #这里配置的是svn安装bin目录下的svn文件
WEB=/ var /www/html/test      #要更新的目录
$SVN  update  $WEB  --username cqh --password 123456
chown  -R www:www   $WEB

其中SVN=右边改成 svn 命令位置 
WEB=右边改成你实际的web目录

第三步:让post-commit有执行的权限

1
chmod  a+x post-commit

第四步:这里就已经完成了,第四步就是测试了。

说明: 
export LANG=en_US.UTF-8是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为UTF8编码,其实SVN默认就是UTF-8编码,如果编码是GBK的话不设置将会出现错误,而执行不成功,错误标识为

1
svn: Can 't convert string from native encoding to ' GBK'

/usr/bin/svn update --username cqh --password 123456 /var/www/html/test 执行更新操作 
如果提示:

1
post-commit hook failed ( exit  code 255) with no output

赋予post-commit文件可执行权限 
如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交

转载于:https://www.cnblogs.com/ygcphp/p/10320519.html

Linux创建配置使用SVN,可远程同步,可实时同步web目录 本人是一个纯粹的php新手,平时开发都是用的windows下的svn来进行团队协作的,今天突发奇想地研究下怎么在Linux下使用SVN,并且怎么实现远程代码同步(即我使用在window下的项目同步linux上去,这样我就可以在任何地方都进行代码的编写了,因为SVN服务端在线上),又怎么实现实时同步web项目目录中去,在研究的过程中遇到了大量的坑,在此记录下来,方便以后查看,同时也方便网友朋友们 阅读详情

相关推荐

linux内核协议栈 netfilter 之连接跟踪子系统AF_INET钩子函数

1连接跟踪子系统钩子函数概述 如《linux内核协议栈 netfilter 之 ip 层的 hook 注册概述以及 hook 的调用场景》中的1.4小结所述,为了支持连接跟踪子系统,AF_INET协议族在4个HOOK点共注册了8个钩子函数,每个HOOK点有两个。这些钩子函数可分为入口(PRE_ROUTING和LOCAL_IN)和出口(LOCAL_OUT和POST_ROUTING)两大类。 1.1数据包流向 在分析之前,我们再次回顾一下数据包在连接跟踪模块中的走向。 1.1.1 发往本地的数...

1205

linuxsvn安装笔记带钩子

linuxsvn安装笔记带钩子 svn安装 linuxsvn安装 svn钩子

Linux钩子配置(SVN

针对web端开发要求,将svn内最新项目文件在项目中调试预览,使用钩子配置即可,如果是JAVA语言,需要集成其它插件进行热编译部署

linux hook技术

Hook中文翻译为钩子,可以用来截获调用函数,并改变函数的行为。Windows和Linux都提供了相应的实现机制。这篇文章是针对Linux平台的。也是在学习协程库libco过程中接触到的。 正文: 如果你是一个开发者,并期望去改变一个库函数的行为,那么这篇文章将带你入门——只是用库函数做实验。所有的代码是用C写的,在Linux上面使用GCC编译测试。 根据维基百科,“在计算机...

mijichui2153的博客 4339

Linux系统中的“钩子

上述钩子覆盖了从内核到用户空间、从硬件事件到软件行为的多种场景。LD_PRELOAD:拦截动态库函数调用(用户态)ptrace:调试并修改进程行为(如GDB底层原理)内核模块挂钩:直接修改内核函数指令(需谨慎,影响稳定性)。具体选择取决于需求的安全层级和复杂度。例如,快速调试可用bpftrace,而安全审计更适合LSM或auditd。

LuckyLay的博客 747

linux进程函数钩子,linux内核中的hook函数详解

在编写linux内核中的网络模块时,用到了钩子函数也就是hook函数。现在来看看linux是如何实现hook函数的。先介绍一个结构体:struct nf_hook_ops,这个结构体是实现钩子函数必须要用到的结构体,其实际的定义为:其中的成员信息为:hook :是一个函数指针,可以将自定义的函数赋值给它,来实现当有数据包到达是调用你自定义的函数。自定义函数的返回值为:owner:是模块的所有者,...

weixin_42384735的博客 1639

linux 内核 hook函数介绍

在编写linux内核中的网络模块时,用到了钩子函数也就是hook函数。现在来看看linux是如何实现hook函数的。 先介绍一个结构体: struct nf_hook_ops,这个结构体是实现钩子函数必须要用到的结构体,所在文件:linux/netfilter.h 定义为: typedef unsigned int nf_hookfn(unsigned int hooknu...

whatday的专栏 3386

linux svn 远程钩子,Linux CentOS 搭建SVN并用钩子自动实现同步Web目录

安装说明系统环境:CentOS-6.3安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件检查已安装版本#检查是否安装了低版本的SVN#卸载旧版本SVN一.安装SVN验证安装检验已经安装的SVN版本信息代码库创建SVN软件安装完成后还需要建立SVN库执行上面的命令后,自动建立svndata库,查看/www/svndata/test 文件夹发现包含了c...

weixin_35662085的博客 204

Linux搭建svn服务器以及配置svn钩子自动同步代码到项目目录

1、安装SVN yum -y install subversion 2、查看是否安装成功 svn --version 3、创建版本库目录 这个版本库是svn仓库的目录,不是项目文件的目录。 我一般选择放在系统根目录下的home文件夹下 [root@VM-0-2-centos ~]# cd /home [root@VM-0-2-centos home]# mkdir svn 4、创建新仓库 svnadmin create /home/svn/xxx (xxx为版本库的名字,我一般以项目

涛々的技术博客 966

Centos7上搭建SVN服务器并实现自动同步web目录

一、安装SVN yum install -y subversion #检查是否安装成功 svnserve --version 二、创建版本库 //创建目录 mkdir /var/svn/svnrepos //创建版本库 cd /var/svn/svnrepos svnadmin create /var/svn/svnrepos/liuke //创建成功 三、配置文件 进入版本库下的conf文件...

Jaystrong的博客 846

深入Linux内核网络堆栈

如何调用内核函数 各种 Net-Filter 钩子及其用法 注册和注销 Net-Filter 钩子

svn同步文件到web服务器,Centos7上搭建SVN服务器并实现自动同步web目录

前言:由于最近跟学长一起合作完成一个小项目,然后我俩比较熟悉的版本控制是SVN,就考虑着在服务器上搭建一个SVN服务器。现在在这里给出简单的搭建过程。 (其实吧,能用Git就尽量用git吧,好处自己百度,有关搭建请参考我的另一篇博客搭建服务器上的GIT并实现自动同步到站点目录(www),这篇博客与git搭建的过程应该是基本一样的)预期目的:1、仓库放在 /var/svn/ 目录下,并且仓库名为 p...

weixin_42303616的博客 565

CentOS搭建SVN自动同步web目录

【代码】CentOS搭建SVN自动同步web目录

分享记录 1272

Linux 安装svn 、设置钩子,更新项目同步svn

检查已安装版本 #检查是否安装了低版本的SVN 1.1 rpm -qa subversion #卸载旧版本SVN 检查已安装版本 #检查是否安装了低版本的SVN 1 rpm -qa subversion #卸载旧版本SVN 1 ...

hua950327的博客 445

centos搭建svn 服务器 并同步web 目录(总结)

配置搭建步骤: Linux平台的SVN服务器的配置及搭建 从本地提交代码到svn代码库。 将代码库中代码同步web目录; 1.在web目录中checkout版本库 进入/home/www目录下 (重要) svn co svn://127.0.0.1/project 补充: svn co svn://127.0.0.1/svnda...

axfcjwkbi259888707的博客 120

linux安装配置SVN并设置钩子

linux安装配置SVN并设置钩子 安装说明 系统环境:CentOS-6.3 安装方式:yum install (源码安装容易产生版本兼容的问题) 安装软件:系统自动下载SVN软件 检查已安装版本 #检查是否安装了低版本的SVN rpm -qa subversion #卸载旧版本SVN yum remove subversion 一.安装SVN yum -y install subversion 验证安装 检验已经安装的SVN版本信息 svnserve --version 代码库创建 SVN软件安装

OpasPolice的博客 715
上一篇: mysql数据库怎么存入emoji表情
下一篇: 使用CURL进行模拟登录采集数据
dingnie1973
博客等级 码龄10年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值