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

・5 分钟阅读

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

在本文中我会向你展示如何使用Apache Subversion和Apache在Centos7服务器实例上构建SVN服务器。

前提条件

  • VM运行CentOS 7
  • 用于登录的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 repo


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

保存和退出:

 
: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 repo"repo1":


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

这是我们的教程,感谢你阅读。

Zuoxiaojuan profile image