目录
背景信息
操作步骤
步骤一:windows server 导出svn的库
步骤二:centos安装apache+svn
- 2.1:安装svn
- 2.2:安装Apache
- 2.3:安装mod_dav_svn
- 2.4:配置SVN
- 2.5:配置Apache
- 2.6:浏览器测试访问
- 2.7: svn备份文件导入centos下svn
- 2.8: centos下svn用户验证
背景信息
本教程手动迁移windows server下svn数据和用户迁移至centos下
- 操作系统:windows server 2008 、centos7
- SVN:1.7.14
- Apache: 2.4.6
步骤一:windows server 导出svn的库
在VisualSVN Server的安装目录的bin目录下,用cmd执行如下命令
svnadmin dump D:\Repositories\DevOps > DevOps.dump
svnadmin dump D:\Repositories\doc > doc.dump
将备份文件 DevOps.dump、doc.dump 以及用户和组信息 文件groups.conf、htpassswd 拷贝到centos服务器
步骤二:centos安装apache+svn
说明:windows server下svn的密码是加密的,所以centos下svn必须使用apache+svn的加密方式
2.1:安装SVN
远程连接Linux实例。
运行以下命令安装SVN。
yum install subversion
运行以下命令查看SVN版本。
svnserve --version
2.2 :安装Apache
运行以下命令安装httpd。
yum install httpd
运行以下命令查看httpd版本。
httpd -version
2.3:安装mod_dav_svn
运行以下命令安装mod_dav_svn。
yum install mod_dav_svn
2.4:配置SVN
- 依次运行以下命令创建SVN版本库。
mkdir /data/svn
cd /data/svn
svnadmin create /data/svn/DevOps
svnadmin create /data/svn/doc
- 运行以下命令修改SVN仓库的用户组为apache。
chown -R apache:apache /data/svn/
- 依次运行以下命令查看自动生成的版本库文件。
cd svnrepos
ls
Subversion目录说明如下表:
目录 | 说明 |
---|---|
db | 存放所有的版本控制数据文件。 |
hooks | 放置hook脚本文件。 |
locks | 用来追踪存取文件库的客户端。 |
format | 一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。 |
conf | SVN版本库的配置文件(版本库的访问账号、权限等)。 |
- 运行以下命令增加SVN版本库的用户和密码。
SVN默认使用明文密码,而http并不支持明文密码,所以需要单独生成passwd文件。本示例中,增加用户admin,密码设置为123456。 请根据实际情况选择并运行以下命令:
- 如果您第一次增加用户,运行命令时需要带上参数-c生成文件。
htpasswd -c /data/svn/passwd admin
- 如果您已经增加过用户,当后续还需要增加用户时,请运行以下命令。
htpasswd /data/svn/passwd admin
根据提示设置用户的密码123456。
- 运行以下命令进入conf目录下。
cd /data/svn/
cp /data/svn/doc/conf/authz ./
- 设置账号的读写权限。
i. 运行vi authz命令,打开权限控制文件。
ii. 按i键进入编辑模式。
iii. 移动光标至文件末尾,并添加如下代码(其中,admin表示账号,r表示读权限,w表示写权限):
[DevOps:/]
admin = rw
[doc:/]
admin = rw
iv. 按Esc键退出编辑模式,并输入:wq保存并退出。
- 修改SVN服务配置。
i. 运行vi svnserve.conf
打开SVN服务配置文件。
ii. 按i键进入编辑模式。
iii. 移动光标找到如下配置行,删除行前面的注释符#和空格:
说明 每行不能以空格开始,且等号两端要有一个空格。
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = /data/svn/passwd #使用哪个文件作为账号文件
authz-db = /data/svn/authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录
svn库doc和DevOps下的conf/svnserve.conf都改为
iv. 按Esc键退出编辑模式,并输入:wq保存并退出。
- 运行以下命令启动SVN版本库。
svnserve -d -r /data/svn/
说明 运行killall svnserve命令可停止SVN服务。
- 运行命令
ps -ef |grep svn
查看SVN服务是否开启。
如果返回结果如下图所示,表示SVN服务已经开启。
2.5:配置Apache
- 运行vim /etc/httpd/conf.d/subversion.conf命令打开httpd配置文件。
- 按i键进入编辑模式。
- 输入以下配置信息:
DAV svn
SVNParentPath /data/svn
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /data/svn/authz
AuthUserFile /data/svn/passwd
Require valid-user
- 按Esc键后,输入:wq保存并关闭文件。
- 运行以下命令启动Apache服务。
systemctl start httpd.service
2.6:浏览器测试访问
- 在本地主机上打开浏览器。
- 输入网址http://
/svn/ 并按回车键。本示例中,SVN版本库名为svnrepos。 - 输入账号和密码,即您在passwd文件中设置的账号和密码。本示例中,账号为admin,密码为123456。
返回结果如下图所示,表示成功访问之前新建的SVN仓库。
2.7: svn备份文件导入centos下svn
- 备份文件拷贝到centos下,并导入svn库中
svnadmin load /data/svn/doc < ../svn_bak/doc.dump
svnadmin load /data/svn/DevOps < ../svn_bak/DevOps.dump
windows server 下svn用户和用户组复制到centos的svn中
groups.conf 的内容复制到 /data/svn/authz文件中
htpasswd 的内容复制到 /data/svn/passwd 文件中给予svn库目录apache用户和组的可以读写权限
chmod -R apache:apache /data/svn
2.8: centos下svn用户验证
浏览器访问 svn库的url地址
用户名和密码按windows server 下svn的账号密码输入,验证windows server 下的svn账号密码已迁移到centos下
文章参考:https://help.aliyun.com/document_detail/129359.html?spm=a2c4g.11186623.6.1209.2f5e2d84S5npUC