程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

APACHE2

編輯:關於PHP編程

第二章 啟動阿帕奇 2.1 啟動阿帕奇 httpd 這支程序可以藉由網際網路服務程序 inetd 在每一次有連線要 進入 HTTP 服務的時候啟動,或者另一種方式,它也可以作為服務程序 (daemon)持續地執行,處理請求。無論選擇哪一種方式,都必須設定這 個 ServerType 指令告訴服務器它要如何執行。 2.2 命令列選項 下列選項可以用在 httpd 的命令列上: -d serverroot 把 ServerRoot 這個參數的起始值設定為 serverroot 。這可以 藉由在配置文件裡面的 ServerRoot 命令來加以改變。此預設為 /usr/local/etc/httpd 。 -f config 啟動時執行在 config 文件裡面的指令。如果 config 沒有以 / 作為開始的話,那麽它會被當作相對於 ServerRoot 的路徑。此 預設值是 conf/httpd.conf 。 -X 以單一程序(single-process)模式執行,只用在內部除錯;服務 程序不會脫離終端作業或是產生任何子程序。不要使用這個模式 來提供正常的網頁服務。 -v 列印 httpd 的版本,然後結束。 -? 列印 httpd 選項的一份列表,然後結束。 2.3 配置檔 此服務器將會讀取三個配置指令文件。任何指令都可以出現在這些文件 任何一個裡面。這些文件的名稱是相對於服務器的根目錄(server root) ; 這是根是藉由 ServerRoot 指令,或是 -d 這個命令列旗標所指定的。 依慣例這些文件是: conf/httpd.conf 包含控制服務程序運作的指令。文件名稱可以配合 -f 命令列旗 旗標加以改變。 conf/srm.conf 包含控制服務器提供給客戶端之文件規格的指令。文件名稱可以 配合 ResourceConfig 指令加以改變。 conf/access.conf 包含控制文件之存取的指令。文件名稱可以配合 AccessConfig 指令加以改變。 無論如何,這些慣例並不需要完全遵奉。 此服務器也會讀取一個包含 MIME 文件型態的文件;這個文件名稱藉由 TypesConfig 指令設定,而且有個 conf/mini.types 作為預設。 2.4 記錄檔 2.4.1 pid 檔 服務程序啟動時,它把父程序 httpd 的程序碼(process id)存往這個 log/httpd.pid 文件。這個文件名稱可以配合 PidFile 指令加以改變 。這個程序碼由管理者用來重新啟動或終止服務程序;一個 HUP 信號 會使服務程序重新讀取其配置檔而一個 TERM 信號會使它終止。 如果程序不正常地死掉(或被殺掉),那麽必須殺掉 httpd 子程序。 2.4.2 錯誤記錄 服務器會將錯誤訊息記錄到一個記錄檔去,預設為 log/error_log 。 文件名稱可以藉由 ErrorLog 指令設定;可以為不同的虛擬主機設定不 同的錯誤記錄。 2.4.3 傳輸記錄 服務器一般會將每個請求記錄到一個傳輸檔,預設為 logs/access_log 。文件名稱可以藉由 TransferLog 指令設定;可以為不同的虛擬主機 設定不同的傳輸記錄。 第三章 阿帕奇核心部份(core)的特色 這些配置參數控制核心部份的阿帕奇特色,而且是固定可以使用的。 3.1 AccessConfig 指令 語法: AccessConfig 文件名稱 預設: AccessConfig conf/access.conf 用於: server config, virtual host 狀態: 核心 此服務器讀取 ResourceConfig 文件之後將會繼續讀取這個文件以取得 更多指令。文件名稱系相對於 ServerRoot 路徑。此特色可以使用如下 的方式關閉: AccessConfig /dev/null 原本這個文件只包含 節區;事實上它現在可以包含任何 可以用於服務器配置的指令。 3.2 AccessFileName 指令 語法: AccessFileName 文件名稱 預設: AccessFileName .htaccess 用於: server config, virtual host 狀態: 核心 回傳文件給客戶端的時候,如果目錄的存取控制檔有啟動,服務器會在 到達這份文件的路徑中的每個目錄裡以此名稱搜尋存取控制檔。例如: AccessFileName .acl 在回傳 /usr/local/web/index.html 這份文件前,此服務器將會讀取 /.acl, /usr/.acl, /usr/local/.acl 以及 /usr/local/web/.acl 以 取得指令,除非以如下的方式關閉它們: AllowOverride None 3.3 AllowOverride 指令 語法: AllowOverride override override ... 預設: AllowOverride All 用於: directory 狀態: 核心 服務器找到 AccessFileName 指定的文件時會需要知道該文件所宣告的 哪些指令可以改變稍早的存取資訊。 Override 可以設為 None 在此情況下服務器將不會讀取該檔,而設為 All 的話服務器將會允許所有的指令,或是下列其中之一: AuthConfig 允許驗認指令的使用(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile and require) FileInfo 允許控制文件型態之指令的使用(AddEncoding, AddLanguage, AddType, DefaultType and LanguagePriority) Indexes 允許控制目錄索引之指令的使用(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions and ReadmeName) Limit 允許控制存取主機之指令的使用(allow, deny and order) Options 允許控制特定目錄特色之指令的使用(Options and XbitHack) 3.4 AuthName 指令 語法: AuthName 驗認領域 用於: directory, .htaccess 需求: AuthConfig 狀態: 核心 這個指令為某個目錄設定驗認區域的名稱。這個區域會送給客戶端所以 使用者知道要傳送的使用者名稱以及密碼。它必須藉由 AuthType 以及 require 指令來完成,而且要有像 AuthUserFile 以及 AuthGroupFile 這些指令配合運作。 3.5 AuthType 指令 語法: AuthType 型態 用於: directory, .htaccess 需求: AuthConfig 狀態: 核心 這個指令為某個目錄選擇使用這驗認型態。目前只有 Basic 實作出來 。它必須藉由 AuthName 以及 require 指令來完成,而且還要有像是 AuthUserFile 以及 AuthGroupFile 這些指令配合運作。 3.6 BindAddress 指令 語法: BindAddress 服務器位址 預設: BindAddress * 用於: server config 狀態: 核心 一台 Unix 的 http 服務器可以監聽到該服務機器每個 IP 位址的連線 或者只注意該服務機器的一個位址。服務器位址可以是: 。* 。一個 IP 位址 。一個完整的網際網路領域名稱 如果此值是 * 的話,那麽該服務器將會監聽每一個 IP 位址的連線, 否則它將只監聽指定的 IP 位址。 這個選項可以用來作為另一種支援虛擬主機的方式取代 節段。 3.7 DefaultType 指令 語法: DefaultType mime-型態 預設: DefaultType text/html 用於: server config, virtual host, directory, .htacess 需求: FileInfo 狀態: 核心 有些時候服務器會被要求提供某份文件,此文件不能藉由其 MIME 型態 對映來決定型態。 服務器必須知會客戶端文件所包含的型態(content-type),所以不知道 型態的時候它便使用 DefaultType 。例如: DefaultType image/gif 對於包含許多沒有 .gif 副文件名的 gif 圖形目錄是合適的。 3.8 指令 語法: ... 用於: server config, virtual host 狀態: 核心 以及 用來把一組指令包裝起來,這些指令 將只應用到所指明的目錄及其子目錄上。任何可以用於 directory 的 指令都可以使用。Directory 是到某目錄的完整路徑,或是替代字元串 (widecard string) 。在替代字元串中 `? 能夠符合任何單一字元, 而 `* 能夠符合任何順序的一些字元。例如: Option Indexes FollowSymLinks 如果有多個 directory 節區能符合包含該文件的目錄(或其父目錄) ,那麽分布在 .htaccess 文件裡的指令是以最短先符合的順序加以應 用的,例如: AllowOverride None AllowOverride FileInfo 存取 /home/web/dir/doc.html 這份文件的步驟是: 。應用 AllowOverride None 指令(關掉 .htaccess 文件)。 。應用 AllowOverride FileInfo 指令(目錄 /home/web )。 。應用任何在 /home/web/.htaccess 裡面的 FileInfo 指令。 這個 directory 節段典型是用在 access.conf 文件裡,但它們可以 出現在任何配置檔裡。 指令不能巢狀使用,而且不能出現 在 節段裡。 3.9 DocumentRoot 指令 語法: DocumentRoot 目錄名稱 預設: DocumentRoot /usr/local/etc/httpd/htdocs 用於: server config, virtual host 狀態: 核心 這個指令設定 httpd 從這個目錄提供文件服務。除非符合像是 Alias 這樣的指令,服務器把所要求的 URL 附加到文件根 (document root) 來組合到達文件的路徑。例如: DocumentRoot /usr/web 如此對於 http://www.my.host.com/index.html 文件的存取便會參照 到 /usr/web/index.html 。 3.10 ErrorDocument 指令 語法: ErrorDocument 錯誤代碼 文件 用於: server config, virtual host 狀態: 核心 有問題或錯誤發生的狀況下,可以配置阿帕奇做四種反應 1. 如同 NCSA httpd 1.3 的反應 2. 輸出自定的(customized)訊息 3. 重導到某個本地的 URL 以處理該問題/錯誤 4. 重導到某個外部的 URL 以處理該問題/錯誤 2-4 是使用 ErrorDocument 來配置,其後跟隨 HTTP 反應碼以及訊息 或是 URL 。 ErrorDocument 500 /cgi-bin/tester ErrorDocument 404 /cgi-bin/bad_urls.pl ErrorDocument 401 http://www.foo.bar/subscription_info.html ErrorDocument 403 "Sorry cant allow you acess today 參閱: 自定回應的文件。 3.11 ErrorLog 指令 語法: ErrorLog 文件名稱 預設: ErrorLog logs/error_log 用於: server config, virtual host 狀態: 核心 這個錯誤記錄指令設定文件名稱,服務器將會把其遭遇的每個錯誤記錄 到這個文件去。如果文件名稱不是以 / 開始的話那麽它就會被假設為 相對於 ServerRoot 的路徑。例如: ErrorLog /dev/null 這會有效地關掉錯誤記錄。 3.12 Group 指令 語法: Group unix-群組 預設: Group #-1 用於: server config 狀態: 核心 這個 Group 指令設定服務器回答要求時所處的群組。為了要能夠使用 這個指令,必須以 root 身分起始執行獨立的服務器。 Unix-群組可以 是這些其中之一:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved