CentOS 7 上部署 Apache Subversion(SVN)服务器
Apache Subversion(SVN)是一种广泛使用的版本控制解决方案,可帮助存储各种版本的文件,如源代码和文档。
在本文中,我将介绍如何使用 Apache Subversion 和 Apache 在 CentOS 7 服务器实例上构建 SVN 服务器。
1. 先决条件
非 root 用户请在命令前加 sudo
。
2. 安装 Apache
使用 YUM 安装 Apache:
yum install -y httpd
Bash
Copy
sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Bash
Copy
防止 Apache 在 /var/www/html
目录中显示文件:
sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Bash
Copy
3. 安装 SVN 和 mod_dav_svn 模块
要使 SVN 与 Apache 配合使用,需要安装除 SVN 之外的 Apache 模块 mod dav svn
:
yum install -y subversion mod_dav_svn
Bash
Copy
4. 配置 SVN
-
Bash Copyvi /etc/httpd/conf.modules.d/10-subversion.conf cat >> /etc/httpd/conf.modules.d/10-subversion.conf <<EOF <Location /svn> DAV svn SVNParentPath /svn AuthName "SVN Repos" AuthType Basic AuthUserFile /etc/svn/svn-auth AuthzSVNAccessFile /svn/authz Require valid-user </Location> EOF
注意: 在此配置中,我们指定了一个 HTTP 访问认证文件
/etc/svn/svn-auth
和用户权限控制文件/svn/authz
。两者都将在以后创建。 -
创建 SVN 仓库
Bash Copymkdir /svn cd /svn svnadmin create repo1 chown -R apache:apache repo1
-
设置 SVN 用户帐号
使用以下命令创建 HTTP 访问认证文件
/svn/svn-auth
和 SVN 用户帐户user001
:
Bash Copymkdir /etc/svn htpasswd -cm /etc/svn/svn-auth user001 chown root:apache /etc/svn/svn-auth chmod 640 /etc/svn/svn-auth
如果要创建更多 SVN 用户帐户,请参阅以下命令:
Bash Copyhtpasswd -m /etc/svn/svn-auth user002 htpasswd -m /etc/svn/svn-auth user003
-
为用户设置权限
Bash Copycp /svn/repo1/conf/authz /svn/authz vi /svn/authz
假设:
然后,可以修改以下设置:
Bash Copy[groups] admin=user001 repo1_user=user002 repo1_trainee=user003 [/] @admin=rw [repo1:/] @repo1_user=rw @repo1_trainee=r
保存并退出:
Bash Copy:wq
-
启动 Apache 并修改防火墙规则
启动 Apache:
Bash Copysystemctl start httpd.service systemctl enable httpd.service
打开 HTTP 服务端口:
Bash Copyfirewall-cmd --zone=public --permanent --add-service=http firewall-cmd --reload
最后,使用以下路径从 SVN 客户端访问服务器上的 SVN repo
repo1
:
Bash Copyhttp://<your-server-ip>/svn/repo1/
教程结束了。谢谢阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。