Apache + SVN服务器搭建
2021年4月25日
SVN 是最流行的版本管理软件之一,可以为源码或者文档记录每次的修改记录,是开发团队协作必备的工具。
这篇文档,我们将讲解如何使用Apache来搭建SVN服务端,Linux服务器我们使用CentOS 7为例,其他Linux版本操作也差不多。
如果你闲搭建自己的SVN服务端以及配置比较麻烦,推荐你使用 SVNBucket,提供了可视化的操作界面,所有操作都变得非常简单
第一步,安装 Apache
使用 yum 安装
1 | yum install httpd |
第二步,安装 Subversion 和 mod_dav_svn 模块
CentOS 7 默认的源安装的 svn 是比较旧的版本,我们使用 wandisco 源安装SVN1.9版本。
新建文件
1 | vim /etc/yum.repos.d/wandisco-svn.repo |
写入源内容
1 | [WandiscoSVN] |
删除旧版本(如果存在)
1 | yum remove subversion* |
开始安装 Subversion
1 | yum install subversion |
为了Apache能提供SVN服务,我们还需要安装一个Apache的模块
1 | yum install mod_dav_svn |
第三步,Apache配置SVN
修改svn配置文件
1 | vim /etc/httpd/conf.modules.d/10-subversion.conf |
文件内容应该如下:
1 | LoadModule dav_svn_module modules/mod_dav_svn.so |
我们配置一个/svn的访问路径,新增以下内容
1 | <Location /svn> |
注意:上面我们指定了svn的授权文件/svn/authz
和用户密码配置文件/etc/svn/svn-auth
,后面我们将创建这两个文件。
第四步,创建SVN仓库
创建仓库
1 | sudo mkdir /svn |
创建用户帐号user001
1 | sudo mkdir /etc/svn |
如果需要创建更多帐号,参考以下命令:
1 | sudo htpasswd -m /etc/svn/svn-auth user002 |
注意“-c”参数是表示创建文件,如果文件已经存在了,就不要再使用这个参数
创建权限配置文件
1 | sudo cp /svn/repo1/conf/authz /svn/authz |
假设:
user001 是作为管理员
user002 是测试人员,拥有”repo1”仓库的读写权限
user003 是实习生,只有”repo1”仓库的读权限
我们的配置文件内容如下:
1 | # 分组 |
第五步,启动 Apache 服务,修改防火墙
启动apache
1 | sudo systemctl start httpd.service |
开启http服务端口
1 | sudo firewall-cmd --zone=public --permanent --add-service=http |
最后,我们就可以使用下面的地址访问到我们的svn仓库了。
1 | http://<your-server-ip>/svn/repo1/ |