为了找到这个解决方案,寻找了很多文章资料,有些文章提供的总是各种说不清道不明,好像就是要藏着似的,我觉得既然你选择了分享你的成果,就应该把过程整理顺畅,而不是留下各种各样的坑,这篇内容,过程简单,但却折腾了我一周的时间,为了验证可用,在2012与2008上做了多次的验证,在这里我把它总结下来,分享给有需要的人,有一点大家要特别注意VisualSVN-serve4.X版本之后限制用户数量为15,所以请谨慎升级。
下期我分享升级到3.9.7版本的操作方法,3.9.7版本没有用户数量限制。
---喜欢我的文章的欢迎转发+点赞+关注,好东西我都会到这边分享给大家。
1、安装软件准备
1.1. 软件准备
https://www.visualsvn.com/downloads/ SVN服务端(服务器端安装包)TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi
https://tortoisesvn.net/downloads.html svn客户端(个人电脑安装包)LanguagePack_1.13.1.28686-x64-zh_CN.msi
https://tortoisesvn.net/downloads.html TortoiseSVN 的汉化包(个人电脑安装)httpd-2.4.43-o111g-x64-vc15.zip
https://www.apachehaus.com/cgi-bin/download.plx
Apache服务端安装包php-7.3.18-Win32-VC15-x64.zip
https://windows.php.net/download/ 服务端安装包
1.2. 注意事项
安装过程路径、密码尽量不要出现中文、特殊字符、少于8位密码;
安装路径所在磁盘空间满足软件业务需求; VisualSVN-serve4.X版本之后限制用户数量为15,请注意谨慎使用。
1.3. 安装描述
1> VisualSVN-Server-4.2.2-x64.msi(svn服务端)
2> TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi(svn客户端)
3> LanguagePack_1.13.1.28686-x64-zh_CN.msi(TortoiseSVN 的汉化包)
4> httpd-2.4.43-o111g-x64-vc15.zip(提取htpasswd.exe文件)
5> php-7.3.18-Win32-VC15-x64.zip(SVN与php整合)
2、服务端安装、项目创建、用户配置、分组配置
2.1. 服务端安装
新建software文件夹,将安装包拷贝到该文件夹下
双击VisualSVN-Server-4.2.2-x64.msi安装包;
在弹出的窗口,点击Next;
勾选授权许可,点击Next;
按默认,直接点击Next;
根据需要修改安装路径、仓库路径、连接端口与备份路径(所有路径注意规划磁盘空间),点击Next;
按默认认证方式,直接点击Next;
点击Install开始安装;
完成安装,并启动SVN服务;
2.2. 项目创建
右键点击Repository,在弹出的选项框中选择 Create New Repository….;
按默认,直接点击下一步;
根据实际情况填写项目名称,点击下一步;
选择创建项目的结构,点击下一步;
选择Nobody has access,点击Create;
完成项目创建;
2.3. 用户分配 右键点击Users,在弹出的选项框中选择 Create User….;
填写用户名、密码、确认密码,点击OK完成用户的创建;
2.4. 分组配置
右键点击Groups,在弹出的选项框中选择 Create Group….;
按数字标识顺序操作:1,填写组名;2,操作添加;3,选择需要添加的用户或组;4和5操作点击OK完成操作;
2.5. 项目授权
右键点击需要授权的目标项目,在弹出的选项框中选择 Properties….;
在弹出的方框中按数字顺序操作:1,操作Add…添加用户或组;2,选择用户或组;3,操作OK确认添加;4,根据实际情况配置权限;5,操作确定完成添加;
3、Apache与PHP配置
备注:本章节中涉及的配置文件请在附件章节中下载
3.1. 提取Apache密码管理工具
1)解压压缩包httpd-2.4.43-o111g-x64-vc15.zip
2)提取htpasswd.exe文件置于VisualSVN Serverbin路径下(路径根据实际部署来操作),本文按如下说明操作
将C: softwarehttpd-2.4.43-o111g-x64-vc15Apache24binhtpasswd.exe
拷贝到C:Program FilesVisualSVN Serverbin
3.2. 配置PHP
1)下载php7.3(注意:下载Thread Safe版本)
2) 将php-7.3.18-Win32-VC15-x64.zip解压到VisualSVN Server安装路径下(路径根据实际部署来操作),本文按如下说明操作
解压并重命名为php,最终php路径为C:Program FilesVisualSVN Serverphp
3.3. 配置httpd-custom.conf文件
修改httpd-custom.conf配置文件(路径根据实际部署来操作),本文按如下说明操作
修改空文件 C:Program FilesVisualSVN Serverconfhttpd-custom.conf
配置如下内容
#php7 support PHPIniDir "C:/Program Files/VisualSVN Server/php" LoadModule php7_module "C:/Program Files/VisualSVN Server/php/php7apache2_4.dll" AddType application/x-httpd-php .php .html .htm #configure the path to php.ini
3.4. 新建index.php
在VisualSVN Serverhtdocs路径下新建pw文件夹,并在pw文件夹中新建 index.php 文件(路径根据实际部署来操作),本文按如下路径操作新建C:Program FilesVisualSVN Serverhtdocspwindex.php文件
配置如下内容<?php $username = $_SERVER["PHP_AUTH_USER"]; //经过 AuthType Basic 认证的用户名$authed_pass = $_SERVER["PHP_AUTH_PW"]; //经过 AuthType Basic 认证的密码$input_oldpass = (isset($_REQUEST["oldpass"]) ? $_REQUEST["oldpass"] : ""); //从界面上输入的原密码$newpass = (isset($_REQUEST["newpass"]) ? $_REQUEST["newpass"] : ""); //界面上输入的新密码$repeatpass = (isset($_REQUEST["repeatpass"]) ? $_REQUEST["repeatpass"] : ""); //界面上输入的重复密码$action = (isset($_REQUEST["action"]) ? $_REQUEST["action"] : ""); //以hide方式提交到服务器的actionif ($action!="modify") { $action = "view";} else if ($authed_pass!=$input_oldpass) { $action = "oldpasswrong";} else if (empty($newpass)) { $action = "passempty";} else if ($newpass!=$repeatpass) { $action = "passnotsame";} else{ $action = "modify";}?> Subversion 在线自助密码修改<?php //action=view 显示普通的输入信息if ($action == "view") {?>
Subversion 密码修改用 户 名: <?php echo $username?>原 密 码:用户密码:确认密码:<?php } else if ($action == "oldpasswrong") { $msg="原密码错误";} else if ($action == "passempty") { $msg="请输入新密码";} else if ($action == "passnotsame") { $msg="两次输入密码不一致,请重新输入";} else { $passwdfile="C:Repositorieshtpasswd"; $command='"C:Program FilesVisualSVN Serverbinhtpasswd.exe" -b '.$passwdfile." ".$username.' "'.$newpass.'"'; system($command, $result); if ($result==0) { $msg_succ="用户[".$username."]密码修改成功,请用新密码登陆"; } else { $msg="用户[".$username."]密码修改失败,返回值为".$result.",请和管理员联系"; }}if (isset($msg_succ)) {?><?php } else if (isset($msg)) {?><?php }?>index.php
3.5. 增加修改密码的链接
修改文件 C:Program FilesVisualSVN ServerWebUIindex.html
#原配置如下 Powered by VisualSVN Server | Report a problem#修改为新配置如下 Powered by VisualSVN Server | Report a problem
在线自助修改密码
重启VisualSVN Background Job Service与VisualSVN HTTP Service服务
3.6. 修改密码
访问svn的web网页http://IP:2443/svn,根据分配的账号登录svn服务器
点击web网页最下方的“在线自助修改密码”跳转到密码修改界面
用户名自动填充,请填写该用户名对应的旧密码,填写新密码,点修改完成密码的修改操作
完成密码修改,点确定返回登录界面
- VisualSVN版本升级(旧3.0.0--新4.2.2)
方式1:异机迁移
步骤1:停止VisualSVN Background Job Service与VisualSVN HTTP Service服务
步骤2:备份新版本的组文件groups.conf与密码配置文件htpasswd
文件路径:C:Repositories 备份路径:C:4.2.2bakRepositories
步骤3:将旧版本的组groups.conf与密码配置文件htpasswd替换到新版本C:Repositories路径下
步骤4:将旧版本的Repositories下所有项目文件拷贝到C:Repositories路径下
步骤5:启动VisualSVN Background Job Service与VisualSVN HTTP Service服务
步骤6:登录测试用户密码是否正确、用户权限是否正常、用户修改密码是否正常
方式2:本机升级
步骤1:停止VisualSVN Background Job Service与VisualSVN HTTP Service服务
步骤2:备份旧版本的Repositories文件夹、VisualSVN Server文件夹备份到路径C:bak下
路径:C:Repositories
路径:C:Program FilesVisualSVN Server
步骤3:下载并安装新版VisualSVN-Server-4.2.2-x64.msi安装过程描述如下:
双击VisualSVN-Server-4.2.2-x64.msi安装包,点击“Next”;
勾选授权许可,点击“Next”;
软件会自动识别当前系统已经安装了3.0.0版本,提示点击upgrade操作将软件升级到VisualSVN-Server 4.2.2,点击“Upgrade”;
步骤4:按第三章节内容操作配置在线自助密码修改搭建
步骤5:启动VisualSVN Background Job Service与VisualSVN HTTP Service
步骤6:登录测试用户密码是否正确、用户权限是否正常、用户修改密码是否正常
- 安装过程报错处理
启动VisualSVN HTTP Service服务时报如下错误
解决方案如下:
需要按照第5章节核对httpd-custom.conf文件与index.php文件中的配置的路径
提示需要Visual C++ Redistributable环境时
解决方案如下:
下载更新程序 (KB2919442),并执行安装地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=42153
下载更新程序Update (KB2919355) 所有补丁,并按照顺序执行安装地址:https://www.microsoft.com/en-us/download/details.aspx?id=42334补丁安装顺序如下(有提示重新启动时,需要操作重启操作系统)
1)clearcompressionflag.exe ----管理员身份运行,没有界面,后台运行
2)Windows8.1-KB2919355-x64.msu
3)Windows8.1-KB2932046-x64.msu
4)Windows8.1-KB2934018-x64.msu
5)Windows8.1-KB2937592-x64.msu
6)Windows8.1-KB2938439-x64.msu
7)Windows8.1-KB2959977-x64.msu
下载更新程序(KB2999226)
地址:https://www.microsoft.com/en-us/download/details.aspx?id=49063
安装vc_redist.x64.exe与vc_redist.x86.exe
地址:https://www.microsoft.com/en-us/download/details.aspx?id=48145
如果操作系统是Windows Server 2008 R2解决方案如下:注意:windows server 2008 R2系统要求是把系统更新到SP1(如果不是SP1安装下面KB2999226补丁程序会出错)
方法1:把系统更新程序打开,更新到最新版本即可;
方法2:通过下载安装补丁把系统版本更新到windows server 2008 R2 SP1
这里介绍方法2,将系统更新到SP1:
(1)下载Windows server 2008 R2 SP1 的补丁码是 KB976932链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=5842
(2)安装KB976932补丁程序,如果提示需要重启操作系统时,请操作重启
(3)尝试安装vc_redist.x64.exe与vc_redist.x86.exe链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145
(4)如果无法正常安装,继续下载补丁码:KB2999226链接:https://www.microsoft.com/zh-CN/download/details.aspx?id=49062补丁安装成功,重复步骤3即可。
(5)补充:如果需要安装.net framework环境,可按如下操作完成在服务器管理器中选择“添加功能角色”,然后勾选“应服务器”,勾选.net framework,一直按下一步,完成.net环境的安装。
- 备注
备注说明
新部署的环境路径与本文的路径有差异时,httpd-custom.conf与index.php附件,请核对并修改与实际环境一致的路径,避免环境无法使用。
httpd-custom.conf文件需核对php调用apache库文件存放路径
C:/Program Files/VisualSVN Server/php/php7apache2_4.dll
index.php文件请核对仓库密码认证路径与调用apache的修改密码文件路径
C:Repositorieshtpasswd
C:Program FilesVisualSVN Serverbinhtpasswd.exe