如何在CentOS 7上设置Apache Subversion SVN服务器
Zuoxiaojuan
・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/
这是我们的教程,感谢你阅读。