怎样设置 Apache CentOS 7 上的 Subversion (SVN) 服务器

Apache Subversion (SVN) 是一种广泛使用的版本控制解决方案,有助于存储各种版本的文件,如源代码和文档。

在本文中,我将向您展示怎样使用 Apache 颠覆和 Apache 在 Vultr CentOS 7 服务器实例上搭建 SVN 服务器。

先决条件

  • 运行 CentOS 7 的 VM(首选最小安装,但不是必需的)。
  • 一个 sudo 用户登录。 另一篇 Vultr 文章描述了有关怎样设置 sudo 用户。

第一步:更新系统

sudo yum update
sudo shutdown -r now

重新启动后,再次使用相同的登录系统 sudo 用户。

第 2 步:安装 Apache

安装 Apache 使用百胜:

sudo yum install httpd

消除 Apache的默认欢迎页面:

sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf

避免 Apache 从显示“/var/www/html”目录中的文件:

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

第 3 步:安装 SVN 和 mod_dav_svn 模块

使 SVN 与 Apache,你需要安装一个 Apache 除了 SVN 之外的模块“moddavsvn”:

sudo yum install subversion mod_dav_svn

第四步:配置SVN

1)修改SVN配置文件

sudo vi /etc/httpd/conf.modules.d/10-subversion.conf

该文件应为:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
LoadModule dontdothat_module  modules/mod_dontdothat.so

附加以下部分:

<Location /svn>
DAV svn
SVNParentPath /svn
AuthName "SVN Repos"
AuthType Basic
AuthUserFile /etc/svn/svn-auth
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>

Save 并退出:

:wq!

笔记: 在这个配置中,我们指定了一个HTTP访问认证文件“/etc/svn/svn-auth”和一个用户权限控制文件“/svn/authz”。 两者都将在稍后创建。

2)创建一个SVN仓库

sudo mkdir /svn
cd /svn
sudo svnadmin create repo1
sudo chown -R apache:apache repo1

3) 设置SVN用户账号

使用以下命令创建一个HTTP访问认证文件“/svn/svn-auth”和一个SVN用户账号“user001”:

sudo mkdir /etc/svn
sudo htpasswd -cm /etc/svn/svn-auth user001
sudo chown root:apache /etc/svn/svn-auth
sudo chmod 640 /etc/svn/svn-auth

如果要创建更多的SVN用户账号,参考如下命令:

sudo htpasswd -m /etc/svn/svn-auth user002
sudo htpasswd -m /etc/svn/svn-auth user003

警告: 从现在开始不要使用“-c”标志,否则您将重建认证文件并清除您之前设置的所有用户帐户。

4) 设置用户权限

sudo cp /svn/repo1/conf/authz /svn/authz
sudo vi /svn/authz

假使,假设:

  • 用户“user001”是管理员。
  • 用户“user002”是对SVN repo“repo1”拥有读写权限的合格用户。
  • 用户“user003”是一个实习生,只能读取SVN repo“repo1”的内容。

然后您可以修改以下设置:

[groups]
admin=user001
repo1_user=user002
repo1_trainee=user003

[/]
@admin=rw

[repo1:/]
@repo1_user=rw
@repo1_trainee=r

Save 并退出:

:wq!

第 5 步:开始 Apache 并修改防火墙规则

开始 Apache:

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

打开HTTP服务端口:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

最后,使用以下路径从 SVN 客户端访问服务器上的 SVN 存储库“repo1”:

https://<your-server-ip>/svn/repo1/

我们的教程到此结束。 感谢您的阅读。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com