http+svn+svnadmin部署手册
SVN是Subversion的简称,是一个开放源代码的版本管理控制系统
安装环境:
centos7.6
一、svn+http安装配置
1. 安装HTTP和SVN相关软件包 ,执行命令如下:
yum install -y httpd subversion mod_dav_svn
2. 检查apache的svn模块是否加载 ,执行命令如下:
httpd -M | grep “svn”
如果出现错误信息:AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using fe80::72ca:dc02:f8a9:c835. Set the ‘ServerName’ directive globally to suppress this message,此时进入httpd配置文件,将ServerName www.example.com:80前面的注释取消即可
3. 修改httpd的配置文件/etc/http/conf/httpd.conf,在末尾增加虚拟主机配置,内容如下:

参数说明如下:
- <Location /abc> :”表示我们的svn的访问URL为”http://ip/abc”
- DAV svn:表示使用”mod_dav_svn”模块
- SVNListParentPath:on表示通过浏览器访问时,会列出所有目录,为了安全,可以将其设置为 off
- AuthName:表示输入用户名和密码时的提示信息
- AuthType:认证类型 这里我们使用基本的认证类型
- SVNParentPath:表示服务”http://ip/abc”请求时,使用版本仓库为”/var/svn/abc”路径下相应的内容
- AuthUserFile:表示用户认证文件的具体目录及文件,需要手动创建
- AuthzSVNAccessFile:表示用户的权限控制文件,需要手动创建
创建目录:mkdir /var/svn/abc,修改svn及其目录下的属主以及属组权限,如图:

4. 创建版本仓库,执行命令如下:

创建成功后,进入仓库下可以看到内容如下:

5. 修改版本库的属主以及属组权限,执行命令如下:

6.新建svn认证账号,执行命令如下:

参数说明如下:
- -c:创建一个加密文件
- -n:不更新加密文件,只将htpasswd命令加密后的用户名和密码显示在屏幕上
- -m:默认htpassswd命令采用MD5算法对密码进行加密,该参数默认情况下可以不加
- -d:表示htpassswd命令采用CRYPT算法对密码进行加密
- -s:表示htpassswd命令采用SHA算法对密码进行加密
- -p:表示htpassswd命令不对密码进行进行加密,即明文密码
- -b:表示在htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
- -D:表示删除指定的用户
7. 创建权限认证文件,并进行编辑,分组并分配仓库的读写权限,执行命令如下:

修改属主和属组:chown apache:apache /var/svn/authz
8. 启动Apache并验证httpd服务,通过http://ip/abc进行访问,输入账号密码即可
二、配置svnadmin的web管理界面:
1、 下载svnadmin:
下载地址为:https:// svnadmin.insanefactory.com/
2、 将下载的svnadmin-1.6.2.zip上传到服务器并解压,执行命令如图:

修改目录iF.SVNAdmin-stable-1.6.2的属主以及属组权限,如图:

3. 将此目录通过软链到http网站的目录,并重命名为svnadmin,如图:

4.由于svnadmin是基于php语言编写,因此需要安装php环境,如图:

5. 修改apache的配置文件/etc/httpd/conf/httpd.conf ,增加index.php如图:

重新加载apache配置文件,systemctl reload httpd
6.通过http://ip/svnadmin进行访问即可,然后选择中文,如图:

7.测试一下授权文件,如图:

8.验证用户身份,如图:

验证代码库父目录以及可执行文件,如图:

9.点击储存配置后,选择管理员用户,然后点击保存,如图:

10.重新登录,使用管理账户和密码,如图:

11.在管理员界面,点击添加代码仓库,如图:

12.输入要添加的仓库名字后,点击下面的新建,如图:

13.创建完成后可以看到新建的仓库名,如图:

14.在用户菜单下,点击添加用户,设置用户名和密码,如图:

15.在用户列表界面,为用户分配角色,如图:

17.最后在访问路径权限界面,设置用户可以访问的仓库以及权限,如图:

18.在svn客户端进行检出的时候,写明版本库路径,输入账号密码,如图:

19.当有新的内容放入文件夹后,右键提交即可,如图:



