本教程介绍如何通过http访问模式来部署SVN。

前提条件

使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

背景信息

本教程手动部署SVN的示例步骤中使用了以下版本软件。操作时,请您以实际软件版本为准。
  • 操作系统:公共镜像CentOS 7.2 64位
  • SVN:1.7.14
  • Apache:2.4.6

操作步骤

步骤一:安装SVN

完成以下操作,安装SVN:

  1. 远程连接Linux实例
  2. 运行以下命令安装SVN。
    yum install subversion
  3. 运行以下命令查看SVN版本。
    svnserve --version

步骤二:安装Apache

完成以下操作,安装Apache:

  1. 运行以下命令安装httpd。
    yum install httpd
  2. 运行以下命令查看httpd版本。
    httpd -version

步骤三:安装mod_dav_svn

运行以下命令安装mod_dav_svn。
yum install mod_dav_svn

步骤四:配置SVN

完成以下操作,配置SVN:

  1. 运行以下命令创建版本库根目录。
    mkdir /var/svn
  2. 运行以下命令创建SVN仓库。
    svnadmin create /var/svn/svnrepo
  3. 运行以下命令修改SVN仓库的用户组为apache。
    chown -R apache:apache /var/svn/svnrepo
  4. 运行以下命令创建用户配置文件passwd
    touch /var/svn/passwd 
  5. 运行以下命令创建用户admin并设置密码。本示例中,密码设置为admin123。
    htpasswd /var/svn/passwd admin
  6. 运行以下命令创建用户访问权限文件。
    cp /var/svn/svnrepo/conf/authz /var/svn/authz

步骤五:配置Apache

完成以下操作,配置Apache:

  1. 运行vim /etc/httpd/conf.d/subversion.conf命令打开httpd配置文件。
  2. i键进入编辑模式。
  3. 输入以下配置信息:
    <Location /svn>
    DAV svn
    SVNParentPath /var/svn
    AuthType Basic
    AuthName "Authorization SVN"
    AuthzSVNAccessFile /var/svn/authz
    AuthUserFile /var/svn/passwd
    Require valid-user
    </Location>
  4. Esc键后,输入:wq保存并关闭文件。
  5. 运行以下命令启动Apache服务。
    systemctl start httpd.service

步骤六:配置安全组规则

SVN服务的默认端口为TCP 3690。您需要登录ECS管理控制台,放行TCP 3690端口。具体操作,请参见添加安全组规则

步骤七:浏览器测试访问

完成以下操作,浏览器测试访问:

  1. 打开浏览器。
  2. 输入网址http://<ECS实例公网IP>/svn/<SVN仓库名>并按回车键。本示例中,SVN仓库名为svnrepo
  3. 输入账号和密码,即您在passwd文件中设置的账号和密码。本示例中,账号为admin,密码为admin123。
    返回结果如下图所示,表示成功访问之前新建的SVN仓库。
    访问结果