日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VisualSVN Server 自助修改密码页面

發布時間:2024/1/1 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 自助修改密码页面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。