Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建

最近有个3.0.0的svn环境要升级可以web界面自助修改密码的,为了找到这个解决方案,我搜索了很多文章与资料,有不少文章提供的总是各种很隐约,好像它要藏着啥好东西似的,我觉得既然你选择了分享你的成果,那就应该把整个过程整理顺畅,而不是在文章中留下各种各样的坑,重新整理真的是很耗时间,这篇内容,看着过程很简单,但却折腾了我一周多的时间,而且为了验证可用,在2012与2008上做了多次的验证,在这里我把它总结下来,分享给有需要的人,有一点大家要特别注意:
VisualSVN-serve4.X版本之后限制用户数量为15
所以请谨慎升级,等我再核验核验,下期给大家分享升级到3.9.7版本的操作方法,3.9.7版本就没有用户数量的限制了。
1、安装软件准备
1.1. 软件准备
1). Windows Server 2012 R2 操作系统
2). VisualSVN-Server-4.2.2-x64.msi
https://www.visualsvn.com/downloads/ SVN服务端(服务器端安装包)
3). TortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msi
https://tortoisesvn.net/downloads.html svn客户端(个人电脑安装包)
4). LanguagePack_1.13.1.28686-x64-zh_CN.msi
https://tortoisesvn.net/downloads.html TortoiseSVN 的汉化包(个人电脑安装)
5). httpd-2.4.43-o111g-x64-vc15.zip
https://www.apachehaus.com/cgi-bin/download.plx
Apache服务端安装包
6). 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 Server\bin路径下(路径根据实际部署来操作),本文按如下说明操作
将C: \software\httpd-2.4.43-o111g-x64-vc15\Apache24\bin\htpasswd.exe
拷贝到C:\Program Files\VisualSVN Server\bin
3.2. 配置PHP
1)下载php7.3(注意:下载Thread Safe版本)
2) 将php-7.3.18-Win32-VC15-x64.zip解压到VisualSVN Server安装路径下(路径根据实际部署来操作),本文按如下说明操作
解压并重命名为php,最终php路径为C:\Program Files\VisualSVN Server\php
3.3. 配置httpd-custom.conf文件
 修改httpd-custom.conf配置文件(路径根据实际部署来操作),本文按如下说明操作
修改空文件 C:\Program Files\VisualSVN Server\conf\httpd-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 Server\htdocs路径下新建pw文件夹,并在pw文件夹中新建 index.php 文件(路径根据实际部署来操作),本文按如下路径操作
新建C:\Program Files\VisualSVN Server\htdocs\pw\index.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方式提交到服务器的action

if ($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";
}
?>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>Subversion 在线自助密码修改</title>
</head>
<body>

<?php
//action=view 显示普通的输入信息
if ($action == "view") {
?>
<script language = "javaScript">
<!--
function loginIn(myform) {
    var newpass=myform.newpass.value;
    var repeatpass=myform.repeatpass.value;

    if (newpass=="") {
        alert("请输入密码!");
        return false;
    }

    if (repeatpass=="") {
        alert("请重复输入密码!");
        return false;
    }

    if (newpass!=repeatpass) {
        alert("两次输入密码不一致,请重新输入!");
        return false;
    }
return true;
}
//-->
</script>

<style type="text/css">
<!--
    table {
        border: 1px solid #CCCCCC;
        background-color: #f9f9f9;
        text-align: center;
        vertical-align: middle;
        font-size: 9pt;
        line-height: 15px;
    }
    th {
        font-weight: bold;
        line-height: 20px;
        border-top-width: 1px;
        border-right-width: 1px;
        border-bottom-width: 1px;
        border-left-width: 1px;
        border-bottom-style: solid;
        color: #333333;
        background-color: f6f6f6;
    }
    input{
        height: 18px;
    }
    .button {
        height: 20px;
    }
-->
</style>

<br><br><br>
<form method="post">
<input type="hidden" name="action" value="modify"/>
<table width="220" cellpadding="3" cellspacing="8" align="center">
<tr>
<th colspan=2>Subversion 密码修改</th>
</tr>
<tr>
<td>用 户 名:</td>
<td align="left"> <?php echo $username?></td>
</tr>
<tr>
<td>原 密 码:</td>
<td><input type=password size=12 name=oldpass></td>
</tr>
<tr>
<td>用户密码:</td>
<td><input type=password size=12 name=newpass></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type=password size=12 name=repeatpass></td>
</tr>
<tr>
<td colspan=2>
<input onclick="return loginIn(this.form)" class="button" type=submit value="修 改">
<input name="reset" type=reset class="button" value="取 消">
<input onclick="window.location.href='/'" class="button" type="button" value="返 回">
</td>
</tr>
</table>
</form>
<?php
} else if ($action == "oldpasswrong") {
    $msg="原密码错误";
} else if ($action == "passempty") {
    $msg="请输入新密码";
} else if ($action == "passnotsame") {
    $msg="两次输入密码不一致,请重新输入";
} else {
    $passwdfile="C:\Repositories\htpasswd";
    $command='"C:\Program Files\VisualSVN Server\bin\htpasswd.exe" -b '.$passwdfile." ".$username.' "'.$newpass.'"';
    system($command, $result);
    if ($result==0) {
        $msg_succ="用户[".$username."]密码修改成功,请用新密码登陆";
    } else {
        $msg="用户[".$username."]密码修改失败,返回值为".$result.",请和管理员联系";
    }
}

if (isset($msg_succ)) {
?>
<script language="javaScript">
<!--
alert("<?php echo $msg_succ?>");
window.location.href="/"
//-->
</script>
<?php
} else if (isset($msg)) {
?>
<script language="javaScript">
<!--
alert("<?php echo $msg?>");
window.location.href="<?php echo $_SERVER["PHP_SELF"]?>"
//-->
</script>
<?php
}
?>
</body>
</html>
index.php

3.5. 增加修改密码的链接
 修改文件 C:\Program Files\VisualSVN Server\WebUI\index.html


```css
#原配置如下
  <footer id="footer">Powered by <a href='https://www.visualsvn.com/server/'>VisualSVN Server</a> | <a href='https://www.visualsvn.com/go/2197/'>Report a problem</a></footer>

```css
#修改为新配置如下
  <footer id="footer">Powered by <a href='https://www.visualsvn.com/server/'>VisualSVN Server</a> | <a href='https://www.visualsvn.com/go/2197/'>Report a problem
    <br /><br /><a href="/pw/index.php">在线自助修改密码</a>
  </footer>

 重启VisualSVN Background Job Service与VisualSVN HTTP Service服务
在这里插入图片描述
3.6. 修改密码
 访问svn的web网页http://IP:2443/svn,根据分配的账号登录svn服务器
 点击web网页最下方的“在线自助修改密码”跳转到密码修改界面
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
 用户名自动填充,请填写该用户名对应的旧密码,填写新密码,点修改完成密码的修改操作
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
 完成密码修改,点确定返回登录界面
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
4、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.2bak\Repositories
 步骤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 Files\VisualSVN 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”;
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
 步骤4:按第三章节内容操作配置在线自助密码修改搭建
 步骤5:启动VisualSVN Background Job Service与VisualSVN HTTP Service
 步骤6:登录测试用户密码是否正确、用户权限是否正常、用户修改密码是否正常

5、安装过程报错处理
 启动VisualSVN HTTP Service服务时报如下错误
Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
解决方案如下:
需要按照第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
6、如果操作系统是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环境的安装。

7、备注
 备注说明
新部署的环境路径与本文的路径有差异时,httpd-custom.conf与index.php附件,请核对并修改与实际环境一致的路径,避免环境无法使用。
 httpd-custom.conf文件需核对php调用apache库文件存放路径
C:/Program Files/VisualSVN Server/php/php7apache2_4.dll
 index.php文件请核对仓库密码认证路径与调用apache的修改密码文件路径
C:\Repositories\htpasswd
C:\Program Files\VisualSVN Server\bin\htpasswd.exe

### 回答1: visualsvn-server-4.2.2-x64.msi是一个用于安装VisualSVN Server 4.2.2版本的安装程序。VisualSVN Server是一个Windows平台上的Subversion服务器包装器,旨在简化Subversion源代码管理系统的安装、部署和管理。 通过运行visualsvn-server-4.2.2-x64.msi,您可以轻松地将VisualSVN Server 4.2.2安装在64位Windows操作系统上。安装程序将为您创建一个Subversion服务器实例,该实例集成了图形用户界面管理工具,使您可以用简单的方式配置和管理服务器。同时,VisualSVN Server还提供了用于Windows身份验证和授权的现代化安全性,可确保您的源代码库和用户权限受到保护。 VisualSVN Server 4.2.2版本是稳定的和经过验证的版本,它具有改进的性能、稳定性和安全性。此版本包含修复了一些先前版本中发现的缺陷和问题,并添加了一些新功能和改进。通过使用visualsvn-server-4.2.2-x64.msi安装VisualSVN Server 4.2.2,您可以享受到这些改进和bug修复带来的好处,并为您的团队提供一个可靠、安全和易于管理的Subversion服务器解决方案。 总之,visualsvn-server-4.2.2-x64.msi是一个可用于安装VisualSVN Server 4.2.2版本的安装程序。这是一个强大且易于使用的Subversion服务器解决方案,适用于Windows操作系统,并提供了一系列功能来促进源代码管理和团队协作。 ### 回答2: visualsvn-server-4.2.2-x64.msi是一个Windows平台上的版本管理工具,用于管理和控制源代码的变更。该软件是VisualSVN Server的安装程序,完全免费,并提供了丰富的功能和工具集。 VisualSVN Server是基于Apache Subversion(简称SVN)的服务器端应用程序。它提供了一个直观的用户界面,可以方便地创建、管理和维护SVN存储库。该软件支持标准的SVN协议,可以与各种开发工具和集成开发环境(IDE)无缝集成。 通过VisualSVN Server,用户可以轻松地创建经过身份验证和加密的SVN存储库,以便团队成员可以共享和协同编辑源代码。它还提供了灵活的访问控制机制,可以细粒度地管理用户权限和权限组。 此外,VisualSVN Server提供了简单而强大的备份和还原功能,以及服务器监视和日志记录功能,可以方便地追踪和修复潜在的错误和问题。它还支持Windows活动目录和LDAP集成,使得用户管理更加方便。 在安装visualsvn-server-4.2.2-x64.msi之前,我们应该确保操作系统是64位版本,并且已经安装了最新的Microsoft Visual C++ Redistributable包。安装过程非常简单,只需双击.msi文件,并按照提示完成安装向导即可。 总而言之,visualsvn-server-4.2.2-x64.msi是一个强大而易于使用的版本控制工具,可以帮助团队成员协同开发和管理源代码,提高开发效率和质量。 ### 回答3: visualsvn-server-4.2.2-x64.msi是一个用于安装VisualSVN服务器的安装程序。VisualSVN是一个基于Subversion版本控制系统的服务器端软件。它提供了一个易于使用的界面,帮助用户建立和管理版本控制仓库,可以用于团队协作和软件开发项目。 安装visualsvn-server-4.2.2-x64.msi非常简单,只需双击运行该安装程序即可启动安装过程。用户需要首先阅读许可协议,并同意协议条件。随后,可以选择安装的目标文件夹以及存储库的位置。安装程序还提供了自定义网络配置的选项,可以根据需要进行调整。 一旦安装完成,VisualSVN服务器将自动启动,开始监听指定的网络端口。用户可以通过浏览器或者VisualSVN客户端工具进行访问和管理。VisualSVN服务器提供了强大的用户和权限管理功能,可以添加和删除用户,并对存储库进行细粒度的访问控制。 通过VisualSVN服务器,用户可以创建和管理存储库,每个存储库都可以包含项目的源代码和相关文件。用户可以使用Subversion客户端工具进行版本控制操作,例如添加、修改、删除文件,提交和更新代码等。VisualSVN服务器还提供了详细的日志记录和审计功能,方便团队成员跟踪和查看项目的历史记录。 总的来说,visualsvn-server-4.2.2-x64.msi是一个强大而易用的版本控制服务器软件安装程序,可以帮助团队更好地管理和协作开发项目,提高项目的质量和效率。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值