上篇已经讲了**《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
svn
2.安装Apache
运行以下命令安装httpd。
yum install httpd
运行以下命令查看httpd版本。
httpd -version
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
创建用户
6.运行以下命令创建用户访问权限文件。
cp /home/svn/project/conf/authz /home/svn/authz
7.配置authz文件
admin = dpyouling #创建admin用户组,用户dpyouling属于admin组。
dpyouling = rw #赋予dpyouling用户,读和写的权利。
[/] # 根域里定义权限
@admin=rw #赋予admin用户组读写权利
*=r #赋予所有用户读取的权利
第三部,配置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仓库。
测试成功
最后注意:在使用apache的时候需要注意的两个问题:1.selinux 2.firewall
1.在测试的时候,我一般selinux都是关闭的
关闭selinux
cat /etc/selinux/conf
修改SELINUX=disable 彻底关闭selinux。
如果不想关闭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
评论区