Linux下 Apache+SVN 讓使用者自行修改SVN密碼
預設在Linux下Apache+SVN沒有提供使用者修改密碼功能,這裡利用PHP指令碼來為使用者提供一種修改密碼的方法。
第一步,使用者在修改密碼之前需要先登入,而登入的驗證方法和訪問SVN是一樣的,在/etc/apache2/mods-available/alias.conf中加入如下配置
第二步,建立 /var/www/svntools 目錄,建立一個php檔案,如index.php,輸入以下程式碼Alias /svntools/ "/var/www/svntools/" <Directory "/var/www/svntools"> AuthType Basic AuthName "svntools repository" AuthUserFile /var/repository/htpasswd<span style="font-family: Arial, Helvetica, sans-serif;"> </span> Require valid-user </Directory>
<?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"> <?=$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="取 消"> </td> </tr> </table> </form> <?php } else if($action == "oldpasswrong"){ $msg="原密碼錯誤!"; } else if($action == "passempty"){ $msg="請輸入新密碼!"; } else if($action == "passnotsame"){ $msg="兩次輸入密碼不一致,請重新輸入!"; } else{ $passwdfile="/var/repository/htpasswd"; $command='"/usr/bin/htpasswd" -b '.$passwdfile." ".$username." ".$newpass; system($command, $result); if($result==0){ $msg="使用者[".$username."]密碼修改成功,請用新密碼登陸."; } else{ $msg="使用者[".$username."]密碼修改失敗,返回值為".$result.",請和管理員聯絡!"; } } if (isset($msg)){ ?> <script language="javaScript"> //<!-- alert("<?=$msg?>"); window.location.href="<?=$_SERVER["PHP_SELF"]?>" //--> </script> <?php } ?> </body> </html>
第三步,修改使用者密碼檔案許可權
chown www-data:www-data /var/repository/htpasswd
第四步,訪問http://hostname/svntools/index.php
PS:網上提供的修改使用者密碼基本都是類似這個指令碼,但是注意,php的頁面需要在“<?”標籤後面加上“php”字串,否則都無法正常執行。
相關推薦
Linux下 Apache+SVN 讓使用者自行修改SVN密碼
預設在Linux下Apache+SVN沒有提供使用者修改密碼功能,這裡利用PHP指令碼來為使用者提供一種修改密碼的方法。 第一步,使用者在修改密碼之前需要先登入,而登入的驗證方法和訪問SVN是一樣的,在/etc/apache2/mods-available/alias.co
linux下apache+SVN搭建完美版
一 、先介紹一下Subversion和apache,apr,apr-util的關係 很多朋友初次接觸Subversion時不是很理解subversion和apache的關係。 我在這裡簡單說明一下svn伺服器和客戶端的安裝說明。 1.
linux下apache+svn+ssl的環境搭建(申請免費的SSL證書)
1.安裝apache2和svn server $sudo apt-get install apache2 $sudo apt-get install subversion $sudo apt-get install libapache2-svn 2.建立版本庫 $sudo
linux下Apache的安裝
linux Apache 安裝 Apache是一個基金會的名字,httpd才是我們需要安裝的軟件包apr和apr-util是一個通用的函數庫,它讓httpd可以不關聯底層操作系統平臺,可以很方便的移植,如果不安裝這兩個,httpd就無法工作。步驟1、下載httpd、apr和apr-utilwget
Linux下Apache與tomcat的整合
一.jdk安裝 1.在www.sun.com中下載linu的jdk1.6,下載到/home/lijing/下 2.在當前目錄下,輸入sh jdk-6u2-linux-i586-rpm.bin 看到 安裝程式在詢問您是否尊守許可協議頁面 ,回車,空格都可以,看完協議. &
Linux下Apache安裝_學習記錄
Linux下Apache安裝_學習記錄 Centos 7 版本 一、Yum安裝Apache的實驗步驟: 1. Yum install httpd 2. 編輯/etc/httpd/conf/httpd.conf檔案,編輯內容如下: 刪除#ServerName
Linux 下 Apache 的安裝與配置
1、安裝APR (Apache Portable Runtime) wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz tar -zxf apr-1.4.5.tar.gz cd apr-1.4.5 ./configure --pre
Linux下Apache服務(wsgi)
wsgi WSGI是Web Server Gateway Interface的縮寫。以層的角度來看,WSGI所在層的位置低於CGI。但與CGI不同的是WSGI具有很強的伸縮性且能運行於多執行緒或多程序的環境下,這是因為WSGI只是一份標準並沒有定義如何去實現。實際上WSGI並非CGI,因
Linux下Apache服務(CGI)
CGI (通用閘道器介面) CGI 是Web 伺服器執行時外部程式的規範,按CGI 編寫的程式可以擴充套件伺服器功能。CGI 應用程式能與瀏覽器進行互動,還可通過資料庫API 與資料庫伺服器等外部資料來源進行通訊,從資料庫伺服器中獲取資料。格式化為HTML文件後,傳送給瀏覽器,也可以將從
Linux下Apache服務(php)
PHP (超文字前處理器) PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文字前處理器”)是一種通用開源指令碼語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Per
Linux下Apache服務的基本設定(企業級)
Apache Apache是世界使用排名第一的Web伺服器軟體。它可以執行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充,將Perl/Python等直譯器編譯到伺服器中。同時Apache音譯為阿帕
linux下Apache預設安裝路徑
如果採用RPM包安裝,安裝路徑應在 /etc/httpd目錄下 apache配置檔案:/etc/httpd/conf/httpd.conf 可以修改相關的訪問路徑及配置 Apache模組路徑:/usr/sbin/apachectl 啟動模組 web目錄:/var/www/html 專案的儲存
Linux 下Apache storm 環境搭建
Linux 下Apache storm 環境搭建 寫在前面 Storm的搭建 zookeeper叢集的安裝 Storm的下載和安裝 寫在前面 網上有不少搭建storm環境的方法,我也是從這些方法開始學習stor
Linux下Apache、PHP、MySQL預設安裝路徑
Apache: 如果採用RPM包安裝,安裝路徑應在 /etc/httpd 目錄下 Apache配置檔案:/etc/httpd/conf/httpd.conf Apache模組路徑:/usr/sbin/apachectl Web目錄:/var/www/html 如
linux下mysql安裝報錯及修改密碼登入等等
1:下載 [root@localhost soft]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz 2:解壓檔案 [root@dbserver /]# tar -xzvf
linux 下apache httpd安裝配置
JDK的安裝 1.解壓 tar -zxvf jdk-8u181-linux-x64.tar.gz 2.重名名後移動到 /usr/目錄下 mv jdk-8u181-linux-x64 jdk sudo mv jdk /usr 3. 新增環境變數 sudo vim /etc/profile
linux下 Apache 配置虛擬主機三種方式
<VirtualHost 192.168.1.11:80> ServerName www.test1.com DocumentRoot /www/test1/ <Directory "/www/test1"> Options Indexes FollowSymLinks
Linux 下MySQL 8.0.11 登陸 修改密碼
MySQL 8.0.11 指令與之前版本有很大的出入。安裝步驟網上有很多,這裡就不再多說。然後是指令檢視MySQL執行狀態:systemctl status mysqld開啟MySQL執行服務:systemctl start mysqld關閉MySQL與性服務:systemc
linux下apache負載均衡與jboss叢集配置
一、安裝並配置jdk 首先安裝JDK,執行命令./ jdk-6u27-linux-x64.bin,JDK安裝目錄為當前指定目錄或者是./jdk-6u33-linux-x64-rpm.bin,或者(如果是rpm格式)執行 rpm –ivh jdk-6u33-linux-amd
Linux下Apache虛擬主機目錄許可權問題
原文出處:http://mtyblog.sinaapp.com/?p=25 文章摘要: ubuntu下新版Apache目錄結構有變化,本文討論一個許可權問題 APACHE虛擬主機目錄許可權問題 今天一直在ubuntu配置Apache虛擬主機。想要配置到0.0.0.0:2和0