VisualSVN Server 自助修改密码页面
一、安装VisualSVN服务:
下载VisualSVN Server(https://www.visualsvn.com/server/download/),并安装VisualSVN Server,由于安装过程比较简单,本文就在不再介绍。具体的安装过程官网也是有介绍的(详情参考:https://www.visualsvn.com/server/getting-started/)。
二、VisualSVN服务修改密码配置:
如果不用VisualSVN客户端的话,VisualSVN Server只能在服务器端修改密码,对管理来说很不方便。 VisualSVN Server 帐号及密码保存在 htpasswd 文件里,有以下几种修改密码的方式:
1、使用 VisualSVN Server Manager 管理工具重置密码(如下图所示)。
2、通过 WMI 里用 PowerShell脚本更改。示例如下:
$svnuser = Get-WmiObject -Namespace Root\VisualSVN `
-ComputerName svn.hostname.com `
-query "select * from VisualSVN_User where name = 'username'"
$svnuser.SetPassword('123456')
3、使用 Apache 的 htpasswd.exe 命令更改:
该方法是使用 php 页面来调用 htpasswd.exe 修改密码,方便用户通过网页修改,下面讲解配置要点。
我使用的操作系统是 Windows Server 2008R2 x64,安装了 VisualSVN Server 3.5.6 x64 带 Apache 2.2.31 x64 的版本,默认安装路径。
从 Apache 官方网站下载完整的 Apache 2.2.31 x64 版本,从里面提取一个文件 htpasswd.exe 放到:C:\Program Files\VisualSVN Server\bin\htpasswd.exe
Apache 2.2.x 要以 handler 方式加载 php 模块,只有 php 5.2-5.4 的 Thread Safe 版本才带 php5apache2_2.dll 文件,php 5.5 及之后的版本只能和 Apache 2.4.x 搭配了,所以选定 php 5.4 版本。
**特别注意:**如果用 VisualSVN Server x64 就必须找 x64 的 php!
否则 Apache 加载 php 模块会提示错误 Cannot load php5apache2_2.dll into server因为 Apache x64 无法使用 php x86。
使用 32 位版本的 VisualSVN Server 比较简单,因为 php 官网都是 x86 版本:
http://windows.php.net/downloads/releases/archives/
使用 64 位版本的 VisualSVN Server 就得找第三方编译的 php x64 版本了,提供两个下载:
https://www.anindya.com/php-5-4-12-and-5-3-22-x64-64-bit-for-windows/
http://www.apachelounge.com/viewtopic.php?t=6123
我下载的是 php-5.4.36-Win32-VC9-x64.zip,下载后解压到 C:\Program Files\VisualSVN Server\php 文件夹。把 php.ini-production 文件重命名为 php.ini 即可,其他不用配置。
3.1、修改空文件 C:\Program Files\VisualSVN Server\conf\httpd-custom.conf
内容如下:
LoadModule php5_module "php/php5apache2_2.dll"
<IfModule php5_module>AddType application/x-httpd-php .phpDirectoryIndex index.html index.php
</IfModule>
# 配置 php.ini 的路径
PHPIniDir "php"
**注意:**在VisualSVNServer3.9版本中,遇到VisualSVNServer无法正常启动问题,可将以上:
LoadModule php5_module "php/php5apache2_2.dll"
修改php5的版本,或者修改php5apache2_4.dll文件的绝对路径:
LoadModule php5_module "php/php5apache2_4.dll"
3.2、新建一个 php 文件放到 C:\Program Files\VisualSVN Server\htdocs\index.php
内容如下:
<?php
/***************************************************************/
$passwdfile="C:\Repositories\htpasswd";
$htpasswdPath = "C:\Program Files\VisualSVN Server\bin\htpasswd.exe";
/***************************************************************/$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";
}
?><html>
<head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><title>密码修改</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>密码修改</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="取 消">
<a href="/"><input name="return" type=button class="button" value="返 回"></a>
</td>
</tr>
</table>
</form>
<?php
} else if ($action == "oldpasswrong") {$msg="原密码错误!";
} else if ($action == "passempty") {$msg="请输入新密码!";
} else if ($action == "passnotsame") {$msg="两次输入密码不一致,请重新输入!";
} else {
// $passwdfile="D:\SVN_Repositories\htpasswd";
// $command='"d:\VisualSVN Server\bin\htpasswd.exe" -b '.$passwdfile." ".$username." ".$newpass;$command='"'. $htpasswdPath. '" -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>
3.3、添加向修改密码页面跳转的超链接,修改文件 C:\Program Files\VisualSVN Server\WebUI\index.html
内容如下:
<a href="/index.php">修改密码</a>
设置完成后,重新启动下Visual SVN server,然后浏览器进入即可看到效果(效果如下图所示)。
四、常见问题:
1、Cannot load php5apache2_4.dll into server解决办法 原因1:
我们在安装好Apache服务器,一开始正常,但安装PHP配置完成之后,再次启动apache的时候出现了错误 the requested operation has failed;
其实网上很多教程说了一大堆,但是都没有说到点子上,出现这个问题最大的可能性就是,您没有安装VC11运行库,因为现在所有的5.5环境都是基于 vc11的编译脚本下生成的,所以在windows下你得安装相关组件msvcr110.dll,否则你双击php.exe测试的时候会报错。在安装msvcr110.dll的时候也要注意系统位数,要不然也是不行的。
原因2:
1.php 5.5 开始就不支持windows2003了;
1.开始想了好久,1直没发现错误,后面猛然发现我的apache的版本是2.2,PHP的版本是5.5,PHP5.5不支持apache2.2了,所以只有php5apache2_4.dll,于是又去下载了个PHP5.4,里边包含了php5apache2_2.dll,在httpd.conf中添加:LoadModule php5_module “D:/php-5.4.23-Win32-VC9-x86/php5apache2_2.dll”,问题解决;
如果Apache/PHP还无法启动,那最可能是php5_module模块的问题:
1.Apache2.0对应的PHP模块为php5apache2.dll;
2.Apache2.2对应的PHP模块为php5apache2_2.dll;
3.Apache2.4对应的PHP模块为php5apache2_4.dll;
换句话说,根据php5_module模块,可以知道当前版本php支持哪种Apache
所以,Apache/PHP的搭配有以下几种情况:
1.php5.2支持Apache2.0和Apache2.2;
2.php5.3、php5.4同时支持Apache2.2和Apache2.4;
3.php5.5只支持Apache2.4;
除非你自己手动编译php5_module模块,否则只能有以上3种选择;
如果Apache/PHP还是无法启动,检查php配置(php.ini)是否存在,运行php.exe有没有提示错误。根据错误提示,纠正错误;
VisualSVN Server 自助修改密码页面相关推荐
- my.ini修改后服务无法启动_VisualSVN Server 自助修改密码页面
一.安装VisualSVN服务: 下载VisualSVN Server(https://www.visualsvn.com/server/download/),并安装VisualSVN Server, ...
- 关于SVN Server自助修改密码详细教程
针对安装和配置自助修改密码录了个视频,细节可详细看视频: 1.安装SVN Server: 专门录了个视频如下: https://pan.baidu.com/s/1MzjKlkQP32-Vx6W98oN ...
- 为svn服务增加自助修改密码功能
为svn服务增加自助修改密码功能 在维护svn服务的过程中,为用户创建了帐号密码,因svn服务原本没有提供修改密码的功能,所以用户如果觉得自己的密码不合适,要修改,则必须通过svn管理员进行修改. ...
- AndroidStudio实现简易android登录注册修改密码页面。
利用sqlite实现简易登录注册以及修改密码功能. 页面设计 登录页面activity_login.xml <?xml version="1.0" encoding=&quo ...
- Windows Server 2012 通过RD Web用户自助修改密码
环境准备 OS:windows server 2012 R2 已配置的服务:AD 域服务 IP地址:192.168.1.242 一.安装远程桌面服务及IIS服务角色 在任务栏中单击下图所示" ...
- web修改计算机用户密码,Windows Server 2012 通过RD Web用户自助修改密码
**环境准备** OS:windows server 2012 R2 已配置的服务:AD 域服务 IP地址:192.168.1.242 **一.安装远程桌面服务及IIS服务角色** 1.在任务栏中单击 ...
- Windows Server2012R2 VisualSVN4.2.2-Server在线修改密码搭建
最近有个3.0.0的svn环境要升级可以web界面自助修改密码的,为了找到这个解决方案,我搜索了很多文章与资料,有不少文章提供的总是各种很隐约,好像它要藏着啥好东西似的,我觉得既然你选择了分享你的成果 ...
- portainer忘记用户名密码_【20201122】做个用户管理系统(6)——忘记密码页面、重置密码方式页面的模板制作...
1. 介绍 1.1 介绍 今天福哥跟大家完成忘记密码页面和重置密码方式页面的模板的制作,这里面忘记密码和重置密码方式是一个操作流程的前两步,是连续的表里的设计.这种多步骤表单在的设计需要一些技巧的,我 ...
- 修改用户名_新华美育查找用户名及修改密码的方法分享
阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以免费收到最新内容了.每天都有分享,完全是免费订阅,请放心关注. 声明:本文转载自网络,如有侵权,请在后台留言联系我 ...
最新文章
- bootstrap:按钮,下拉菜单
- vb mysql数据导入到mssql,[请教]怎样把*.txt文本的数据导入sql数据库中?
- 超越RMI,高效Java remote调用
- 普通人有必要学python-风变编程:普通人学Python有意义吗?
- SAP SLG1 日志API
- 新书首发 | 《机器学习 公式推导与代码实现》正式出版!(文末送书)
- 服务器打不QQ显示00001,QQ登录超时00001怎么处理?
- java 没有提示信息,ActionErrors没有提示信息
- php获取跳转前的地址,PHP获取短链接跳转后的真实地址和响应头信息的方法
- 李彦宏说互联网思维已过时,AI可以根本上变革交通、城市、农业和医疗
- Java环境安装手册
- 基于Kinect 2.0深度摄像头的三维重建 and Kinect Fusion
- 目录 1. 管理的门槛	1 1.1. 资历作为一个年龄效应	1 1.2. 高层次知识结构的构建与提升 系统层面及战略层面的问题时	1 2. ,一类是绝对年龄效应,另一类是相对年龄效应。	1 2.1.
- 人工神经网络图像识别,人脸识别神经网络模型
- lnmp一键安装的步骤
- 文件夹目录权限实现方法总结(附代码)
- C++中STL用法超详细总结
- 根据手机的分辨率和屏幕尺寸计算手机屏幕的PPI
- 作为一个Java初学者,怎样从一个新手快速入门?
- 无限天空服务器,滚动的天空无限钻石无限金币版