Centos 7 部署http访问SVN模式

Centos 7 部署http访问SVN模式

Scroll Down

上篇已经讲了**《Centos 7 搭建SVN服务器及避坑指南!》**是通过Svnserve的方式访问SVN,这篇我们将会讲解采用http的方式访问SVN。

至于svn的作用和用发, 就不详细说了,大家可以去上篇文章看看!

部署http访问SVN模式

安装环境:

  • svn 1.7.14
  • apache 2.4.6 #这个是最新的apache,文件结构和以前的又不一样了!

第一步,安装软件

1.安装SVN

运行以下命令安装SVN。

yum install subversion

运行以下命令查看SVN版本。

svnserve --version

1.jpg

svn

2.安装Apache

运行以下命令安装httpd。

yum install httpd

运行以下命令查看httpd版本。

httpd -version

2.jpg

apache

3.安装mod_dav_svn

运行以下命令安装mod_dav_svn。

yum install mod_dav_svn

第二步,配置SVN

1.配置SVN运行以下命令创建版本库根目录。

mkdir /home/svn

2.运行以下命令创建SVN仓库。

svnadmin create /home/svn/project

3.运行以下命令修改SVN仓库的用户组为apache。

chown -R apache:apache /home/svn/project

4.运行以下命令创建用户配置文件passwd。

touch /home/svn/passwd 

5.运行以下命令创建用户dpyouling并设置密码。本示例中,密码设置为123456。

htpasswd /home/svn/passwd dpyouling

3.jpg

创建用户

6.运行以下命令创建用户访问权限文件。

cp /home/svn/project/conf/authz /home/svn/authz

7.配置authz文件

admin = dpyouling                   #创建admin用户组,用户dpyouling属于admin组。
dpyouling = rw                     #赋予dpyouling用户,读和写的权利。

[/]                               # 根域里定义权限
@admin=rw                        #赋予admin用户组读写权利
*=r                                #赋予所有用户读取的权利

4.jpg

第三部,配置apache

1.配置Apache运行vim /etc/httpd/conf.d/subversion.conf命令打开httpd配置文件。

文件中增加一下代码

<Location /svn>
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /home/svn/authz
AuthUserFile /home/svn/passwd
Require valid-user
</Location>

2.运行以下命令启动Apache服务。

systemctl start httpd.service

3。输入网址http://<实例IP>/svn/<SVN仓库名>。

本示例中,SVN仓库名为http://192.168.10.165/svn/project。

4.输入账号和密码,即您在passwd文件中设置的账号和密码。

本示例中,账号为dpyouling,密码为123456。

返回结果如下图所示,表示成功访问之前新建的SVN仓库。

5.jpg

测试成功

最后注意:在使用apache的时候需要注意的两个问题:1.selinux 2.firewall

1.在测试的时候,我一般selinux都是关闭的

关闭selinux

cat /etc/selinux/conf
修改SELINUX=disable 彻底关闭selinux。

6.jpg

如果不想关闭selinux,那就这样做:

chcon -R -t httpd_sys_content_t devops

setsebool httpd_unified=1

**注:setsebool httpd_unified=1这个设置可以解决这样的错误:Can’t open file /var/lib/svn/devops/db/txn-current-lock’: Permission denied**

2.防火墙可以直接关闭,也可以使用规则保证运行。

防火墙使用命令

  • 启动: systemctl start firewalld
  • 关闭: systemctl stop firewalld
  • 查看状态: systemctl status firewalld
  • 开机禁用 : systemctl disable firewalld
  • 开机启用 : systemctl enable firewalld

如果不想关闭防火墙使用下面命令就可以

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