CentOS 7上部署Apache Subversion(SVN)服务器
Apache Subversion(简称SVN)是一个开放源代码的版本控制系统,广泛用于管理文档和程序代码等文件的版本,尽管相比Git来说,SVN较为古老,但它仍然被许多企业用于代码和文档的管理服务,本文将详细介绍如何在CentOS 7服务器上安装和配置SVN与Apache的集成,以便通过HTTP访问版本控制仓库。
先决条件
1、操作系统:CentOS 7(最小化安装)。
2、用户权限:一个sudo用户登录(也可以直接使用root用户)。
3、网络环境:确保服务器能够连接到互联网,以便下载必要的软件包。
步骤一:安装Apache
1、安装Apache:
sudo yum install y httpd
2、删除默认欢迎页面:
sudo sed i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
3、防止Apache在/var/www/html目录中显示文件:
sudo sed i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
步骤二:安装Subversion和mod_dav_svn模块
1、添加Wandisco源并安装最新版本的Subversion:
sudo yum install y https://opensource.wandisco.com/centos/7/x86_64/wandiscorepo70.el7.bos.noarch.rpm sudo yum install y subversion mod_dav_svn
步骤三:配置SVN
1、修改SVN配置文件:
编辑/etc/httpd/conf.modules.d/10subversion.conf
:
sudo vi /etc/httpd/conf.modules.d/10subversion.conf
添加以下内容:
<Location /svn> DAV svn SVNParentPath /svn AuthName "SVN Repos" AuthType Basic AuthUserFile /etc/svn/svnauth AuthzSVNAccessFile /svn/authz Require validuser </Location>
2、创建SVN仓库:
sudo mkdir /svn cd /svn sudo svnadmin create repo1 sudo chown R apache:apache repo1
3、设置SVN用户帐号:
sudo mkdir /etc/svn sudo htpasswd cm /etc/svn/svnauth user001 sudo chown root:apache /etc/svn/svnauth sudo chmod 640 /etc/svn/svnauth
4、为用户设置权限:
复制仓库中的权限配置文件并进行编辑:
sudo cp /svn/repo1/conf/authz /svn/authz sudo vi /svn/authz
假设:用户user001
是管理员,用户user002
具有读写权限,用户user003
只有读权限,则配置文件内容如下:
[groups] admin=user001 repo1_user=user002 repo1_trainee=user003 [/] @admin=rw [repo1:/] @repo1_user=rw @repo1_trainee=r
步骤四:启动Apache并修改防火墙规则
1、启动Apache:
sudo systemctl start httpd.service sudo systemctl enable httpd.service
2、打开HTTP服务端口:
sudo firewallcmd zone=public permanent addservice=http sudo firewallcmd reload
FAQs
1、如何创建新的SVN用户?
可以使用htpasswd
命令创建新的用户,要创建一个名为user002
的新用户,可以执行以下命令:
sudo htpasswd m /etc/svn/svnauth user002
2、如何配置不同用户的权限?
可以通过编辑/svn/authz
文件来配置不同用户的权限,给user002
读写权限,给user003
只读权限,可以按以下方式配置:
[groups] repo1_user=user002 repo1_trainee=user003 [/] @repo1_user=rw @repo1_trainee=r