如何在CentOS 7上设置Apache Subversion(SVN)服务器

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

在本文中,我将向您展示如何使用Apache Subversion和Apache在Vultr CentOS 7服务器实例上构建SVN服务器。

先决条件

  • 运行CentOS 7的VM(首选最小安装,但不是必需的)。
  • 用于登录的sudo用户。Vultr的另一篇文章介绍了有关如何设置sudo用户的详细信息。

步骤1:更新系统

sudo yum update
sudo shutdown -r now

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

步骤2:安装Apache

使用YUM安装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一起使用,除了SVN之外,您还需要安装Apache模块“ mod dav svn”:

sudo yum install subversion mod_dav_svn

步骤4:配置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>

保存并退出:

: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存储库“ repo1”的读写权限的合格用户。
  • 用户“ user003”是一个受训者,只能读取SVN存储库“ repo1”的内容。

然后,您可以在以下范围内修改设置:

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

[/]
@admin=rw

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

保存并退出:

: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”:

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

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

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息