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