1. 安裝 Webmin (每組,15%)
注意:安裝及設定後,執行時應為 https://team9807.dyndns.biz:9999/
(應包含 webmin 在文字模式下的安裝過程記錄下來,並打包/壓縮成 webmin_install.tar.gz,然後修改權限為 666 並搬移至自己的網站根目錄中。)
2.完成下列的要求:(每一個人,20%)
注意:安裝及設定後,執行時應為 :
a. 在個人家目錄下,產生一個 auth_file.php,欲執行此檔案需輸入帳號(tea)與密碼(ok),其執行方式如下:
http://team9807.dyndns.biz/~u9XXXXX/auth_file.php (請自行建立)
HTTP 方式認證的方法很簡單,我們只要輸出二個檔頭,當瀏覽器讀到這二個檔頭時,就會出現一個要求使用者輸入帳號與密碼的視窗。當使用者輸入完成按確定後,瀏覽器就會將使用者帳號與密碼傳回給伺服器。在 PHP 裡,使用者的帳號與密碼可以藉由 $PHP AUTH_USER 與 $PHP_AUTH_PW 兩個全域變數來讀取。
請看底下的範例 :
<?php
// 如果 $PHP_AUTH_USER 不等於 "tea",則再要求使用者輸入。
if($_SERVER['PHP_AUTH_USER'] !='tea' || $_SERVER['PHP_AUTH_PW'] !='ok'){
//送出要求認證的檔頭
header('WWW-Authenticate: Basic realm="「網站禁區」---需輸入帳號/密碼"');
header('HTTP/1.0 401 Unauthorized');
echo "您的帳號錯誤。請按重新整理輸入正確的帳號與密碼。";
//記得要加上 exit() 離開,不然等於沒有進行認證!
exit();
}
/*
如果使用者輸入正確的帳號與密碼,下面的 HTML 就會被輸出
*/
?>
<HTML>
<HEAD>
<TITLE></TlTLE>
</HEAD>
<BODY>
<P>歡迎光臨「網站禁區」 !!</P>
</BODY>
</HTML>
b. 在個人家目錄下,產生一個目錄 private,欲執行此目錄下的任何檔案均需輸入帳號(tea)與密碼(ok),其執行方式如下:
http://team9807.dyndns.biz/~u9XXXXX/private/test.html test.html 為 private 下的任一檔案(請自行建立)
接下來要介紹的也是 HTTP 的認證方式,但是比起之前介紹的方法,這個方法使用起來不但方便許多,而且還能做使用者群組的設定。我們利用的是 Apache 提供的 htpasswd 工具與 .htaccess 檔案。
首先,必須先建立一個使用者資料檔(加上參數 -c 表示要新增一個使用者資料檔。建立好資料檔後,以後要新增使用者就不必再加上 -c 參數,否則資料檔會被覆蓋掉。):
cd /home/u9XXXXX/www
mkdir private
cd private
htpasswd -c .htpasswd tea
New password: ←輸入使用者密碼
Re-type new password: ←輸入使用者密碼
在我們想要做認證的目錄下建立一個 .htaccess 的檔案(vi .htaccess,這個檔案可以對該目錄下所有的檔案包括子目錄進行認證的工作,底下是一個範例:
# 顯示給使用者的提示字串。
AuthName "登入時需輸入「帳號」與「密碼」"
# 設定認證用的通訊協定,指定 Basic 的話表示傳送使用者名稱與密碼時不做編碼,指定 Digest 的話,則是使用 MD5 將使用者的密碼編碼。如果 AuthType 指定 Digest,則 AuthUserFile 必須改成 AuthDigestFile。使用者資料檔的建立方式不變。
AuthType Basic
# 指定使用者的資料檔。使用者的資料檔必須使用 htpasswd 來新增使用者與設定密碼。
AuthUserFile "/home/u9XXXXX/www/private/.htpasswd"
# 指定使用者的群組資料檔。
#AuthGroupFile c:\appserv\apache\bin\htgroup
# 指定可以讀取目錄下的檔案與子目錄的使用者或群組名稱。如果是使用者名稱的話,多個使用者間以一個以上的空白隔開即可。如果是群組名稱的話,必須寫成如 require group admin 的格式。admin 是在群組檔案裡設定的使用者群組,群組資料檔的位置由 AuthGroupFile 項目設定。
require valid-user
#require user jollen
#require group ieem316
#透過 .htaccess 來管制執行的 IP或網域
#order deny,allow
#deny from all
#allow from .nthu.edu.tw
#allow from 140.114.70.31
test.html 的參考內容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>team9807's Web site</title>
</head>
<body>
<br><br>
<h1 align="center">網頁建置中</h1>
</body>
</html>
3. 完成下列的要求:(每組,15%)[實作前可先請助教說明]
a. 設定 MySQL 資料庫管理者的密碼
b. 授權(grant)組內每一個組員存取資料庫的帳號與密碼
c. 安裝/設定 phpMyAdmin (圖形化的資料庫管理介面)
cd /var/www/html/
wget http://nchc.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-3.1.3.1-all-languages.zip
unzip -o phpMyAdmin-3.1.3.1-all-languages.zip
rm -rf phpMyAdmin-3.1.3.1-all-languages.zip
mv -f phpMyAdmin-3.1.3.1-all-languages phpMyAdmin
4. 設定「虛擬主機」(Named VirtualHOST)(每組,20%)
每個組員先申請對應於學號的網域名稱(例如:u940833.dyndns.biz),然後再進行「虛擬主機」的設定!
設定 named-virtual host 對應到組內每個組員的網域名稱。
5. 安裝 購物網站(osCommerce) (每組,30%)
安裝後的執行網址(虛擬主機名稱)如下:
http://team9807.dyndns.biz/webshop/ 而實際的路徑是 /var/www/html/webshop/