19.2. 預設設定

在定義完 『伺服器名稱』、『Webmaster 的電子郵件地址』 與 『可用的位址』 之後,請點選 『虛擬主機』 的標簽頁,再點選 編輯預設設定 的按鈕,將會出現如 圖形 19-3 所示的視窗。 請在此配置網頁伺服器的預設設定。 假如您新增一個虛擬主機,您為該虛擬主機配置的設定將會優先於該虛擬主機。 至於虛擬主機中未定義的指令,將會使用預設值。

19.2.1. 站台設定

目錄頁搜尋清單』 與 『錯誤頁』 的預設設定將可使用再大部份的伺服器上,假如您不確定這些設定,請勿修改它們。

圖形 19-3. 站台設定

在 『目錄頁搜尋清單』 所列出的紀錄將用來定義 DirectoryIndex 指令。 當使用者在一個目錄名稱的最後指定一個斜線符號來要求一個目錄的索引時,DirectoryIndex 便是伺服器所伺服的預設網頁。

舉例來說,當使用者要求 http://www.example.com/this_directory/ 網頁時,他們將會取得 DirectoryIndex 的網頁(如果存在的話),或者一個伺服器產生的目錄清單。 伺服器將會試著尋找 DirectoryIndex 指令所列出的檔案,而且將會傳回第一個找到的檔案。 假如找不到任何的這些檔案,而且該目錄有設定 Options Indexes,伺服器將會產生並傳回該目錄中的子目錄與檔案的清單(以 HTML 格式表示)。

當發生問題或錯誤時,可以使用 『錯誤碼』 部份來設定 Apache HTTP 伺服器 重導用戶到一個本地或外部的 URL。 這個選項 ErrorDocument 指令。 當用戶試著要連線到 Apache HTTP 伺服器 時,假如發生一個問題或錯誤,預設的動作便是顯示如 『錯誤碼』 欄位所示的簡短錯誤訊息。 如要強制覆寫這個預設設定,請選取一個錯誤碼並點選 編輯 按鈕,選擇 『預設值』 以顯示預設的簡短錯誤訊息; 選擇 『URL』 來重導用戶到一個外部的 URL,並且在 『位置』 的欄位輸入包括 http:// 的一個完整 URL; 選擇 『檔案』 來重導用戶到一個內部的 URL,並且輸入網頁伺服器中 document root 下的檔案位置,這個位置必須以一個斜線開頭,並且必須相對於 Document Root。

舉例來說,如要重導一個 『404 - 找不到』 的錯誤碼到一個您所建立稱為 404.html 的檔案,請複製 404.html 檔案到 DocumentRoot/errors/404.html。 在這裡,DocumentRoot 為您所定義的 Document Root 目錄(預設值是 /var/www/html)。 然後選擇 『檔案』 當作 『404 - 找不到』 錯誤碼的行為,並且在 『Location』 欄為輸入 /errors/404.html

從 『預設錯誤的頁尾』 選單,您可以選擇下列的其中一種選項:

19.2.2. 紀錄檔

預設情況下,伺服器將寫入傳輸紀錄到 /var/log/httpd/access_log 檔案,而寫入錯誤紀錄到 /var/log/httpd/error_log 檔案。

傳輸紀錄檔中包含了所有試圖存取網頁伺服器的清單,它紀錄了試圖連線的用戶 IP 位址、存取的日期與時間以及用戶試著要擷取網頁伺服器中的檔案。 請輸入要儲存這些資訊的目錄與檔案名稱,假如這個目錄與檔案名稱並不是以斜線開頭,這個路徑必須是相對於所設定的伺服器根目錄。 這個選項等同於 TransferLog 指令。

圖形 19-4. 紀錄檔

您可以藉由選取 『使用慣有的紀錄工具』 並且在 『自訂紀錄字串』 的欄位輸入一個自訂的紀錄字串,來設定一個自訂的紀錄格式。 這將會設定 LogFormat 指令,請參考 http://httpd.apache.org/docs-2.0/mod/mod_log_config.html#formats 以取得關於這個指令的格式。

錯誤紀錄檔包含了所發生的任何伺服器錯誤清單,請輸入要儲存這些資訊的目錄與檔案名稱,假如這個目錄與檔案名稱並不是以斜線開頭,這個路徑必須是相對於所設定的伺服器根目錄。 這個選項等同於 ErrorLog 指令。

使用 『紀錄等級』 的選單來設定錯誤紀錄檔中錯誤訊息的詳細情況。 在此您可以設定它為(從最簡短到最詳細)Emergency, Alert, Critical, Error, Warn, Notice, Info 或 Debug。 這個選項等同於 LogLevel 指令。

反向 DNS 搜尋』 的選單所選擇的數值將定義 HostnameLookups 指令。 選擇 『非反向尋找』 將設定這個數值為關閉(off); 選擇 『反向搜尋』 將設定這個數值為開啟(on); 而選擇 『雙重反向尋找』 將設定這個數值為雙重的(double)。

假如您選擇 『反向搜尋』,您的伺服器將會自動解析每一個要求您伺服器中文件之連線的 IP 位址。 解析 IP 位址表示您的伺服器將會建立連線到 DNS 找出對應到一個特定 IP 位址的主機名稱。

假如您選擇 『雙重反向尋找』,您的伺服器將會執行一個雙重反向的 DNS,也就是說,在執行一次反向搜尋之後,將在結果執行一次正向搜尋。 在正向搜尋的結果中,至少要有一個 IP 位址符合第一次反向搜尋的位址。

一般來說,您應該要將這個選項設定為 『非反向尋找』,因為 DNS 的要求將會增加您伺服器的負載,而且也許會使其變慢。 假如您的伺服器很繁忙,試著要執行這些反向搜尋或雙重反向搜尋所造成的影響將會很明顯。

對整體來說,反向搜尋與雙重反向搜尋也將為網際網路產生一個令人不得不注意的議題。 所有單一連線對其主機名稱的搜尋將產生很大的負載。 因此為了您自己的網頁伺服器與網際網路的彼此利益,您應該將這個選項設為 『非反向尋找』。

19.2.3. 環境變數

有時候有必要為 CGI 程式碼或 server-side include (SSI) 網頁修改環境變數,Apache HTTP 伺服器 可以使用 mod_env 模組來設定傳送至 CGI 程式碼與 SSI 網頁的環境變數,請使用 『環境變數』 的頁面來設定這個模組的指令。

圖形 19-5. 環境變數

使用 『設定 CGI 程式碼』 的部份來設定傳送至 CGI 程式碼與 SSI 網頁的一個環境變數。 舉例來說,如要設定 MAXNUM 環境變數為 50,請點選如 圖形 19-5 所示 『設定 CGI 程式碼』 部份旁邊的 新增 按鈕,然後在 『環境變數』 的欄位輸入 MAXNUM,在 『設定的數值』 欄位輸入 50。 點選 確定 來增加它到清單中。 『設定 CGI 程式碼』 的部份將設定 SetEnv 指令。

當伺服器第一次啟動來伺服 CGI 程式碼時,使用 『傳至 CGI 程式碼』 的部份來傳送一個環境變數的數值。 如想得知這個環境變數,請在 shell 提示符號下輸入 env 指令。 在 『傳至 CGI 程式碼』 的部份點選 新增 按鈕,在跳出的對話窗中輸入環境變數的名稱,再點選 確定 來將它加入清單中。 『傳至 CGI 程式碼』 的部份將設定 PassEnv 指令。

假如您想要移除一個環境變數使得該數值將不會傳送至 CGI 程式碼與 SSI 頁面,請使用 『解除 CGI 程式碼的設定』 部份,點選 『解除 CGI 程式碼的設定』 部份的 新增 按鈕,並輸入要取消設定的環境變數名稱,再點選 確定 來將它加入清單中。 這個選項等同於 UnsetEnv 指令。

如要編輯任何的這些環境數值,請從清單中選取它,再點選相對應的 編輯 按鈕,如要從清單中刪除任何的紀錄,請選取它,再點選相對應的 刪除 按鈕。

如要學習更多關於 Apache HTTP 伺服器 中環境變數的資訊,請參考下列的網站:

http://httpd.apache.org/docs-2.0/env.html

19.2.4. 目錄

使用 『目錄』 的頁面來設定特殊目錄的選項,這個選項等同於 <Directory> 指令。

圖形 19-6. 目錄

點選右上角的 編輯 按鈕來為其下 『目錄』 清單中未指定的所有目錄設定 『預設目錄選項 』。 您所選擇的選項會被列出當作 <Directory> 指令中的 Options 指令。 您可以設定下列的選項:

如要為特定的目錄指定選項,請點選 『目錄』 清單部份旁邊的 新增 按鈕,將會出現如 圖形 19-7 所示的視窗,請在視窗底端的 『目錄』 文字欄位輸入要設定的目錄。 請選取右邊清單的選項,並以左邊的選項設定 Order 指令。 Order 指令控制評估允許與拒絕指令的順序。 在 『允許的主機名稱』 與 『拒絕主機來自』 的文字欄位,您可以指定下列的其中一個:

圖形 19-7. 目錄設定

假如您選取 『使 .htaccess 檔優先於目錄選項』,在 .htaccess 檔案中的設定指令將會優先考量。