背景信息
本教程手动部署SVN的示例步骤中ECS实例配置和版本软件信息如下。操作时,请您以实际配置为准。
实例规格:ecs.c6.large
操作系统:公共镜像CentOS 7.2 64位
SVN:1.7.14
Apache:2.4.6
您也可以通过云市场镜像快速部署SVN。例如云市场镜像提供的SVN版本控制(Centos 64位 | SVN),您可以选购镜像,并根据镜像选购页的使用指南,快速完成部署。
步骤一:安装SVN
远程连接Linux服务器。具体操作,请参见通过密码或密钥认证登录Linux实例。
运行以下命令,安装SVN。
yum install -y subversion
运行以下命令,查看SVN版本。
步骤二:安装Apache
运行以下命令,安装httpd。
运行以下命令,查看httpd版本。
步骤三:安装mod_dav_svn
运行以下命令,安装mod_dav_svn。
yum install mod_dav_svn -y
步骤四:配置SVN
依次运行以下命令,创建SVN版本库。
cd /var/svn
svnadmin create /var/svn/svnrepos
运行以下命令,修改SVN仓库的用户组为apache。
chown -R apache:apache /var/svn/svnrepos
依次运行以下命令,查看自动生成的版本库文件。

Subversion目录说明如下表:
目录 | 说明 |
db | 存放所有的版本控制数据文件。 |
hooks | 放置hook脚本文件。 |
locks | 用来追踪存取文件库的客户端。 |
format | 一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。 |
conf | SVN版本库的配置文件(版本库的访问账号、权限等)。 |
运行以下命令,增加SVN版本库的用户和密码。
SVN默认使用明文密码,而HTTP并不支持明文密码,所以需要单独生成passwd文件。本示例中,增加用户userTest
,密码设置为passWDTest
。 请根据实际情况选择并运行以下命令:
根据提示设置用户的密码。
运行以下命令,进入conf目录下。
cd /var/svn/svnrepos/conf/
设置账号的读写权限。
运行以下命令,打开权限控制文件。
按i
键进入编辑模式。
移动光标至文件末尾,并添加如下代码(其中,userTest表示账号,r表示读权限,w表示写权限):
按Esc
键退出编辑模式,并输入:wq
保存并退出。
修改SVN服务配置。
运行以下命令,打开SVN服务配置文件。
按i
键,进入编辑模式。
移动光标找到如下配置行,删除行前面的注释符#和空格。
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录

按Esc
键退出编辑模式,并输入:wq
保存并退出。
运行以下命令,启动SVN版本库。
本文示例中,启动命令直接指定到版本库。
svnserve -d -r /var/svn/svnrepos/
说明
运行killall svnserve
命令可停止SVN服务。
运行命令,查看SVN服务是否开启。
如果返回结果如下图所示,表示SVN服务已经开启。
步骤五:配置Apache
运行以下命令,新增并编辑httpd配置文件。
vim /etc/httpd/conf.d/subversion.conf
按i
键,进入编辑模式。
输入以下配置信息。
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /var/svn/svnrepos/conf/authz
AuthUserFile /var/svn/svnrepos/conf/passwd
Require valid-user
</Location>
按Esc
键后,输入:wq
保存并关闭文件。
运行以下命令,启动Apache服务。
systemctl start httpd.service
步骤六:浏览器测试访问
在本地主机上打开浏览器。
输入网址http://<ECS实例公网IP>/svn/<SVN版本库名>
并按回车键。本示例中,SVN版本库名为svnrepos。
输入账号和密码,即您在passwd文件中设置的账号和密码。本示例中,账号为userTest,密码为passWDTest。
返回结果如下图所示,表示成功访问之前新建的SVN仓库。