搭建Subversion

注意
本文最后更新于 2024-06-18,文中内容可能已过时。

bash

apt -y install apache2

检查 apache 是否安装成功

bash

systemctl status apache2.service

bash

apt -y install subversion

检查 svnserve 是否安装成功

bash

svnserve --version

安装 mod_dav_svn

mod_dav_svn 是 apache 服务器访问 svn 的一个模块。

bash

apt install libapache2-mod-svn

bash

mkdir /data/svn
svnadmin create /data/svn/project
chown -R www-data.www-data /data/svn

修改 svnserve.conf

删除以下配置注释

text

anon-access = none    #关闭匿名访问
auth-access = write   #验证用户可写
password-db = passwd  #指向验证用户名密码的数据文件 passwd
auth-db=authz         #指向验证用户的权限配置文件 authz

这里不使用 svn 的用户管理

创建用户密码文件

bash

# 创建用户文件
touch /data/svn/htpasswd
# 创建用户 admin
htpasswd /data/svn/passwd admin
# 创建用户 user1
htpasswd /data/svn/passwd user1

创建权限文件 authz

bash

cp /data/svn/project/conf/authz /data/svn/authz

配置 apache

bash

vi /etc/apache2/mods-available/dav_svn.conf

conf

<Location />
    DAV svn
    SVNPath /data/svn
    AuthType Basic
    AuthName "Subversion repos"
    AuthUserFile /data/svn/htpasswd
    AuthzSVNAccessFile /data/svn/authz
    Require valid-user
</Location>
<Location /project>
    DAV svn
    SVNPath /data/svn/project
    AuthType Basic
    AuthName "Subversion repos"
    AuthUserFile /data/svn/htpasswd
    AuthzSVNAccessFile /data/svn/authz
    Require valid-user
</Location>

重启 apache 服务

bash

systemctl restart apache2.service

客户端使用 http://ip/repo 就可以访问刚才建立的svn仓库了。

启动 svnserver,不使用 svn 协议非必要

bash

svnserve -d -r /data/svn