使用 Linux 下的 HTTP 协议搭建多个 SVN 服务器可以方便管理代码版本,实现协同开发。本文将详细介绍如何实现该功能。
配置 Apache 虚拟主机
首先,需要为每个 SVN 存储库配置一个 Apache 虚拟主机。在 /etc/apache2/sites-available/ 目录下创建虚拟主机配置文件,例如 virtualhost1.conf:
ServerName svn1.example.com
DocumentRoot /var/www/svn/repo1
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
重复上述步骤为每个 SVN 存储库创建虚拟主机配置文件。
设置 SVN 权限
接下来,需要设置每个 SVN 存储库的权限。使用 htpasswd 命令创建包含 SVN 用户名和密码的文件:
htpasswd -cm /etc/apache2/.htpasswd username1
然后修改每个 SVN 存储库的权限设置,允许授权用户访问:
chown -R apache:apache /var/www/svn/repo1
chmod -R 750 /var/www/svn/repo1
设置 SVN 配置
现在,需要为每个 SVN 存储库设置 SVN 配置文件。在每个存储库的根目录下创建 .svnignores 文件,指定要忽略的文件和目录。
还需要在每个存储库的 conf/ 目录下创建 authz 文件,指定用户对存储库的访问权限:
[/]
user1 = rw
group1 = r
重启 Apache 和 SVN 服务
最后,重启 Apache 和 SVN 服务以使更改生效:
systemctl restart apache2
systemctl restart svnserve
验证配置
要验证配置是否生效,请使用 SVN 客户端访问 SVN 存储库:
svn checkout http://svn1.example.com/repo1
如果输出提示输入用户名和密码,并且可以成功签出存储库,则配置完成。