SVN服务器的搭建

1、通过SVN协议访问服务器

(1)准备安装软件时,请关闭防火墙、selinux应用。

本次实验是正常开启防火墙与Selinux的应用中部署的。

安装SVN程序,程序名为:subversion

centos 7 系统自带svn

#rpm -qa subversion

[root@localhost ~]# rpm -qa subversion
subversion-1.7.14-14.el7.x86_64

(2)检查已安装的版本

#svnserve  --version 

[root@localhost ~]# svnserve --version
svnserve, version 1.7.14 (r1542130)
   compiled Apr 11 2018, 02:40:28

Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

[root@localhost ~]#

(3)创建SVN版本库,先创建根目录,再创建项目存放的位置;

#  mkdir  -p  /home/svn 

[root@localhost ~]# svnadmin create /home/svn/desgin 设计部门使用
[root@localhost ~]# svnadmin create /home/svn/dev    研发部门使用

(4)配置代码库

进入 /home/svn/desgin 目录后,有以下文件;

authz : 权限控制文件

passwd :  账号密码文件

svnserve.conf : SVN服务配置文件

首先写入账号密码

# vim passwd

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
admin = 111111 desgin
= 111111 dev = 111111

编辑完成后,保存并退出。

设置权限控制

# vim authz

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
design = user1,user2,user...
developer = user11,user22,user...

[/]
admin = rw 管理员具有所权限
* =
[
/desgin] design = rw 设计部权限 * =
[
/dev] dev = rw 研发部权限 * =

最后修改svnserve.conf文件

anon-access=none                #匿名用户不可访问
auth-access=write               #授权用户可写
password-db=passwd              #使用哪个文件作为账号文件
authz-db = authz                #使用哪个文件作为权限文件
realm = My First Repository     #认证空间名,版本库所在目录

(5)SVN 启动与停止

#  svnserve  -d -r  /home/svn     #让svn以deamon守护进程方式 以root用户启动运行

查看SVN进程

# ps aux | grep svn

[root@localhost ~]# netstat -tunlp | grep 3690
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      19195/svnserve

关闭SVN

# killall svnserve  

[root@localhost ~]# netstat -tunlp | grep 3690

(6)访问SVN服务

地址:svn://IP/desgin(项目名称)

 

2、通过http协议访问服务器

(1)安装httpd与svn模块

#  yum  -y install mod_dav_svn httpd

查看mod_dav_svn是否安装成功

[root@localhost ~]# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so

(2)配置版本库

# mkdir -p /var/svn
# svnadmin  create /var/svn/strategy                  # 设计项目名称
# chown -R apache:apache  /var/svn/                   # 改变权限为apache
# chcon -R -t httpd_sys_content_rw_t   /var/svn/      # 重设selinux的安全上下文

(3)配置版本库项目的位置

在/etc/httpd/conf.d/文件下创建subversion.conf文件

# vi subversion.conf

[root@localhost conf.d]# cat subversion.conf
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /svn>
   DAV svn
   SVNParentPath /var/svn
      AuthType Basic      #使用基本认证方式,即用户名、密码认证 
      AuthName "Authorization Realm"    # 在认证对话框中出现的提示信息 
      AuthUserFile /var/svn/authz    # 指定存放用户名的权限
      AuthzSVNAccessFile /var/svn/passwd   # 指定存放用户的密码
      Require valid-user    # 用户验证,口令与密码正确才能登入
</Location>

(4)使用htpasswd创建http登陆的账户密码

 htpasswd (选项)(文件)(参数)

在 /var/svn/目录中,一共有三个文件

authz(权限分配)      passwd(账号密码)       strategy(建立的版本库位置)

-c:创建一个加密文件;只有第一次创建账户密码时使用
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上; 
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密; 
-p:不对密码进行进行加密,即明文密码; 
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户

#首次使用加 -c 参数,以后再入其它用户直接用 -b 参数与 -m 参数配合使用即可。

# htpasswd -c -m /var/svn/passwd admin    (第一次添加用户使用 -c 参数)

# htpasswd -mb /var/svn/passwd desgin 111111 (后面的参数是用户与密码)
# htpasswd -mb /var/svn/passwd dev    111111 (后面的参数是用户与密码)

 (5)创建用户访问路径的文件与权限

[root@localhost ~]# cd /var/svn/
[root@localhost ~]# vim authz
[groups]

[/]
admin = rw
* = [/desgin] desgin = rw
* =
[/dev]
dev = rw
* =

打开防火墙:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

 

(6)访问SVN服务器

# systemctl  restart httpd   

地址:http://IP/svn/desgin(项目名称)

 

 

 


posted @ 2019-12-24 21:58  区域管理员  阅读(348)  评论(0编辑  收藏  举报