(Centos7)下搭建SVN服务器

第一步:通过yum命令安装svnserve,命令如下:

yum -y install subversion

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:

rpm -ql subversion

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
选择在home路径下创建版本库,当前处于根目录下,一次性创建如下:

mkdir /home/svn                //个人喜好,目录随便选

在第二步建立的路径基础上,创建版本库,命令如下:

svnadmin create /home/svn/xiangmu                    //在第二步的版本目录下创建版本库     名字根据自己需求取

创建成功后,进入xiangmu 目录下

cd /home/svn/xiangmu

进入目录,可以看见如下文件信息:

drwxr-xr-x 2 root root 4096 May  2 13:48 conf
drwxr-sr-x 6 root root 4096 May  2 13:48 db
-r--r--r-- 1 root root    2 May  2 13:48 format
drwxr-xr-x 2 root root 4096 May  2 13:48 hooks
drwxr-xr-x 2 root root 4096 May  2 13:48 locks
-rw-r--r-- 1 root root  229 May  2 13:48 README.txt

第四步:配置修改

进入已经创建好的版本库目录下,也就是前文说创建的xiangmu,进入conf

cd /var/svnrepos/xxxx/conf

conf目录下,一共存放三份重要的配置文件,如下:

-rw-r--r-- 1 root root 1080 May  2 13:48 authz
-rw-r--r-- 1 root root  309 May  2 13:48 passwd
-rw-r--r-- 1 root root 3090 May  2 13:48 svnserve.conf

authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件

.编辑 authz 文件(注意:[/]也是必须的)
(Centos7)下搭建SVN服务器_第1张图片[/]:表示根目录,即 /home/svn
luo = rw:表示用户luo对根目录具有读写权限。
2.编辑 passwd 文件
(Centos7)下搭建SVN服务器_第2张图片如上所示,用户名为:luo,认证密码为:luo123456
3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
(Centos7)下搭建SVN服务器_第3张图片

anon-access = none:表示禁止匿名用户访问。
auth-access = write:表示授权用户拥有读写权限。
password-db = passswd:指定用户名口令文件,即 passwd 文件。
authz-db = authz:指定权限配置文件,即 authz 文件。
realm = /var/svnrepos:指定认证域,即 /home/svn 目录。

第五步:防火墙开启(这里以iptable防火墻为例)

多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】

vi /etc/sysconfig/iptables

添加配置信息

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
//阿里云服务器注意,记得配置那个网络组,就是那个入网
firewall-cmd --zone=public --add-port=3690/tcp --permanent
 
返回success为成功
 
命令含义: 
 
--zone #作用域 
 
--add-port=80/tcp #添加端口,格式为:端口/通讯协议 
 
--permanent #永久生效
 
重启防火墙:
 
systemctl restart firewalld.service 
 
关闭防火墙:
 
systemctl stop firewalld.service 
 
查看监听(Listen)的端口
 
netstat -lntp
 
检查端口被哪个进程占用
 
netstat -lnp|grep 3690
systemctl restart iptables.service #重启防火墙使配置生效

六:启动svn服务器

 kill -9 ******    //通过kill -9方式杀死进程 *****是对应的pid  
 svnserve -d -r /home/svn

启动成功后,可用ps -aux查看服务启动是否成功

ps -ef | grep 'svnserve'

七:客户端访问svn服务器

在windows客户端,输入地址:svn://ip地址:3690/xiangmu (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)
弹出输入用户名和密码,输入即可访问
或者在linux服务器输入命令测试:
或者在linux服务器输入命令测试:

svn co svn://ip地址:3690/xiangmu

八、同步svn项目到网站web目录

svn co svn://ip/xiangmu   /www/wwwroot/xiangmu--username (SVN账号) --password (SVN密码)

进入 /home/svn/svn/xiangmu/hooks目录下

cp cp post-commit.tmpl post-commit (复制这份模板文件,因为svn将要执行的是post-commit文件)



vim post-commit 
REPOS="$1"               //这个值在最下面有  我拿到上面来只是为了好看
REV="$2"                  //这个值在最下面有   我拿到上面来只是为了好看


export LANG=zh_CN.UTF-8  #(这句话比较重要,如果客户端跟服务器编码不一样会出现同步失败)
  /usr/bin/svn update  /home/wwwroot/xiangmu/lgz --username luo --password luo123456

wq!保存退出,此时已经完成更新命令

chmod 777 post-commit			//给权限

有可能会出现钩子127的错误 那么就注释

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

具体步骤基本完成,按照步骤走应该没多大问题,有问题的老铁可以留言

你可能感兴趣的:(linux)