VisualSVN Server使用的是64位版
查看对应的apache版本号是 2.2.32.
这个版本需要使用php5.5以下的,且需要使用64位的php。
下载php 5.4 的64位版本。
配置Visual SVN Server支持php
1. 将下载的php解压缩到VisualSVNServer的目录中
C:Program FilesVisualSVN Serverphp
2.修改配置文件
C:Program FilesVisualSVN Serverconfhttpd-custom.conf
LoadModule php5_module "php/php5apache2_2.dll"
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
# 配置 php.ini 的路径
PHPIniDir "php"
3.建立php脚本
我们这里主要是利用了apach自己的htpasswd.exe工具来进行密码的变更操作
可以下载一个apache的完整包提取该工具放到如下路径:
C:Program FilesVisualSVN Serverbinhtpasswd.exe
新建一个 php 文件放到 C:Program FilesVisualSVN Serverhtdocspwindex.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方式提交到服务器的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";
}
?>
Subversion 在线自助密码修改//action=view 显示普通的输入信息
if ($action == "view") {
?>
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;
}
Subversion 密码修改 | |
---|---|
用 户 名: | <?php echo $username?> |
原 密 码: | |
用户密码: | |
确认密码: | |
} else if ($action == "oldpasswrong") {
$msg="原密码错误!";
} else if ($action == "passempty") {
$msg="请输入新密码!";
} else if ($action == "passnotsame") {
$msg="两次输入密码不一致,请重新输入!";
} else {
$command='"'. $htpasswdPath. '" -b '.$passwdfile." ".$username." ".$newpass;
system($command, $result);
if ($result==0) {
$msg_succ="用户[".$username."]密码修改成功,请用新密码登陆.";
} else {
$msg="用户[".$username."]密码修改失败,返回值为".$result.",请和管理员联系!";
}
}
if (isset($msg_succ)) {
?>
} else if (isset($msg)) {
?>
}
?>
修改C:Program FilesVisualSVN ServerWebUIindex.html
增加里面修改的链接
参考