Linux安装配置SVN服务器(多项目) 并配置SVN钩子自动更新项目文件到web目录 外加 加入系统自动启动

1 篇文章 0 订阅

0. 卸载装SVN服务器:

# yum remove subversion

1. 安装SVN服务器:

检查是否已安装

# rpm -qa subversion

安装SVN服务器

# yum install subversion

验证安装

# cd /etc/httpd/modules

# ls | grep svn

mod_authz_svn.so

mod_dav_svn.so

查看版本

# svnserve --version

2. 代码库创建:

安装完成后要建立SVN库

# mkdir -p /opt/svn/repositories

# svnadmin create /opt/svn/repositories

执行后,自动建立repositories库,查看/opt/svn/repositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。

注意:如果报错svnadmin: error while loading shared libraries: libaprutil-1.so.0: cannot op是因为缺少了apache的apr-util的支持。不要怕,安装apr-util即可:执行 # yum install -y apr-util  

或者

/etc/ld.so.conf文件修改为

include ld.so.conf.d/*.conf
/usr/local/lib
/www/server/apache/lib //为服务器apache lib目录

3. 配置版本库:

进入上面conf文件夹下,进行配置:

a. 用户密码passwd配置:

# vi + passwd  //+表示光标放在文件最低端

修改passwd为一下内容:

[users]

# harry = harryssecret

# sally = sallyssecret

lz=123456

 

b. 权限控制authz配置:

# vi + authz

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

[/]

lz=rw  //给该用户访问所有库的权限
 

[repositories:/project]  //repository库的根目录权限
lz=rw

/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限

repositories:/ 表示对库repositories的根目录设置权限

c. 服务svnserve.con配置:

# vi + svnserve.conf

添加一下内容:

 

[general]

#匿名访问的权限,可以是read,write,none,默认为read

anon-access=none

#使授权用户有写权限

auth-access=write

#密码数据库的路径

password-db=passwd

#访问控制文件

authz-db=authz

#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

realm=/opt/svn/repositories

 

这里注意各标签不能错,也不能有重复,不然无法连接。

d. 配置防火墙端口(一般情况不需要配置):

不一定每个人都需要设置,可以先测试后再看是否需要打开端口

# vi /etc/sysconfig/iptables

添加一下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

保存后重启防火墙

# service iptables restart

 

4. 查看:

a. 启动SVN

# svnserve -d -r /opt/svn/repositories

b. 查看SVN进程

# ps -ef|grep svn|grep -v grep

root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories

 

c. 检测SVN端口

# netstat -ln |grep 3690

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN

 

5. 停止重启SVN:

# killall svnserve //停止

# svnserve -d -r /opt/svn/repositories // 启动

注意:如果服务器有多个项目的版本库 可以将版本库全部放在svn目录下,这样启动的时候不需要加版本库

# svnserve -d -r /opt/svn/

这样 客户端连接的时候就可以使用 svn://192.168.15.224/repositories

注意:如果长时间未响应请检查3690 是否放行

6. 配置svn钩子:

在SVN服务器端

说明:

服务器操作系统:ubuntu(linux)

SVN安装路径:/usr/bin/svn

SVN项目路径:/home/svn

SVN登录账号:yourname

SVN登录密码:yourpass

Web站点根目录:/home/wwwroot/

实现目的:

当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录

具体操作:

一、使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录

cd /home/svn/hooks

cp post-commit.tmpl post-commit

vim post-commit #编辑,添加以下代码

 

REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
SVN_PATH=/usr/bin/svn
WEB_PATH=/www/wwwroot/项目目录/

SVN_USER=yourname

SVN_PASS=yourpassword

LOG_PATH= /www/wwwlogs/svn.log

echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH

echo `whoami`,$REPOS,$REV >> $LOG_PATH

$SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH

:wq #保存退出

chown www:www /www/svn/hooks/post-commit #设置脚本所属用户组,www为web服务运行账户和组

chmod +x /home/svn/hooks/post-commit #添加脚本执行权限(755)

 

备注:修改post-commit 重启svn服务

我们先将SVN版本库中的一个项目checkout到网站目录:

svn co file://SVN版本库地址 网站目录

比如 svn co file:///www/svn/test/ /www/wwwroot/test

 

 

Linux服务器端设置svn开机启动

(1)在Linux服务器跟目录 创建一个脚本文件

     #  touch svn.sh

(2) 进入脚本文件

      # vim svn.sh

(3)添加一下内容

    #!/bin/bash
    /usr/bin/svnserve -d -r  /opt/svn/repositories

    解释一下:

               这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。
绝对路径怎么查?

      # which svnserve

(4)改该脚本的执行权限

    # chmod 777 svn.sh

(5)加入自动运行

     # vi /etc/rc.d/rc.local
在末尾添加脚本的路径:
       /root/svn.sh

(6)重启Linux服务器,重启后查看svn服务器是否已经开启

        #  ps -ef|grep svnserve

     如果显示以下信息表示svn已经开启了:

       tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN

7. 其他:

修改端口号:svnserve -d -r/www/svn/项目库 --listen-port 3691

加入自动服务分来源https://www.cnblogs.com/zengjiqiang/p/7413910.html 感谢作者分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值