⒈ 源碼包安裝httpd。
⑴、靜態預設安裝,命令如下:
完成後,先查詢安裝了那些模組命令如下:
再看模組是否啟用,如:
可見模組沒有被啟用,若想添加模組了,可用如下命令載入:
接著可看到模組被載入啟用了,如下:
⑵、動態安裝且載入所有模組,命令如下:
完成後可以看到模組安裝載入情況如下:
通過對比,推薦安裝時採取動態完整安裝。
⒉ apache設定檔參數詳解。
這整個解釋都是針對系統Cent OS 5.0安裝時內建的apache所進行的。
⑴、先瞭解一下apache的相對結構。
/etc/httpd/conf/httpd.conf:主設定檔,其主要設定以它為主;
/etc/httpd/conf.d/*.conf:額外參數配置,如果你不想修改原始設定檔httpd.conf的話,可以將你自己的設定獨立出來,如建立為/etc/httpd/conf.d/child.conf,apache啟動時就被載入;
/usr/lib/httpd/modules/:apache支援很多模組,你所想要的模組都放在其中;
/var/www/html/:預設‘首頁’所在目錄,當你輸入http://localhost時所顯示資料所在目錄;
/var/www/error/:配置錯誤或瀏覽器要求資料錯誤時,瀏覽器上出現的錯誤訊息以這個目錄預設為主;
/var/www/icons/:它提供 Apache預設給予的一些小圖示,你可以隨意使用,當你輸入http://localhost/icons/時所顯示的資料所在;
/var/www/cgi-bin/:預設給一些可執行檔CGI(網頁程式)程式放置的目錄;
/var/log/httpd/:預設的apache登入資訊都放在這裡,對流量較大的網站,這個目錄要小心設定;
/usr/sbin/apachectl:apache的主要開機檔案,其實是shell script;
/usr/sbin/httpd:apache的二進位開機檔案。
⑵、主設定檔httpd.conf詳解。
其基本設定格式如下,如例子對目錄/var/www/html/的設定:
①、httpd.conf設定分三部分,首先針對全域環境參數(Global Environment):
ServerTokens OS告知使用者端WWW伺服器的版本與作業系統
ServerRoot "/etc/httpd"Apache安裝路徑
PidFile run/httpd.pid放置PID的目錄,方便軟體管理,是相對路徑
Timeout 120持續串連如果等待超過120秒則串連斷開
KeepAlive Off是否允許持久性的串連,預設為否
MaxKeepAliveRequests 100持續連線的人數,改成0就是說沒有人數的限制
KeepAliveTimeout 15在允許KeepAlive條件下,保持串連的超出時間
上面是兩組與伺服器串連資源有關的設定,分為worker與prefork,兩組的設定都是相似的,httpd啟動時只採用一組設定,/usr/sbin/httpd執行的是prefork組、/usr/sbin/httpd.worker執行的是worker組,預設為prefork組,可在/etc/sysconfig/httpd中查詢使用那個組。
Listen 80監聽的連接埠號碼
LoadModule access_module modules/mod_access.so
……(下面省略)顯示載入的模組組
Include conf.d/*.conf使得目錄/etc/httpd/conf.d/下的設定檔*.conf都會被讀入
User apache
Group apache由誰啟動Apache伺服器
②、接著是針對“主”服務配置(’Main’ server configuration):
ServerAdmin root@localhost網頁出錯給誰發信通知
UseCanonicalName Off是否使用標準主機名稱,預設為否
DocumentRoot "/var/www/html"網頁存放的路徑,文檔的根目錄
<Directory>是針對目錄許可權的設定。上面前一組是針對httpd的預設環境而來的,是“/”的設定,設定很嚴格;後一組是針對根目錄/var/www/html的設定。幾個設定的解釋如下:
Options表示目錄內能進行的動作,設定有None、All或Indexes、FollowSymLinks、ExecCGI、Includes、MultiViews選項的任意組合。None表示只能瀏覽;All則可以做任何事,但不包括MultiViews;Indexes表示在無首頁檔案時,顯示整個目錄下的設定檔名稱;FollowSymLinks讓此目錄下的連結檔案可連結出此目錄外;ExecCGI讓次目錄具有執行CGI程式的許可權;Includes讓一些Server-Side
Include程式可以執行;MultiViews與語系資料(language priority)有關。
AllowOverride表示是否允許額外設定檔.htaccess的許可權啟用,覆蓋httpd.conf相關的設定,設定有ALL、AuthConfig、Indexes、Limits、None。ALL表示完全啟用;AuthConfig僅有網頁認證時啟用;Indexes允許index方面的啟用;Limits允許使用者利用Allow、Deny與Order管理可瀏覽的許可權;None表示檔案.htaccess失效。
Order決定是否可被瀏覽的許可權設定,分deny,allow與allow, deny,deny,allow以deny優先處理,無寫入規則時預設為allow;allow, deny則相反。Allow from all則開放所有瀏覽許可權。
這是配置個人使用者主目錄的設定,預設關閉
把所有以.ht開頭的檔案做限制,阻止Web客戶查看
TypeConfig conf/mime.types定義在哪裡查詢mime.types檔案
DefaultType text/plain定義當不能確定MIME類型時伺服器提供的預設MIME類型,當服務主要包含text或HTML文檔,“text/plain”是一個好的選擇,如果大多是二進位文檔,諸如軟體或映像,應使用 “application/octer-stream”
模組mod_mime_magic允許伺服器從自己定義類型的檔案中使用不同的線索(hints),這個MIMEMagicFile指令定義hints定義所在的檔案
HostnameLookups Off指定記錄使用者端是名字還是IP地址,預設值為off,記錄IP地址
ErrorLog logs/error_log記錄錯誤的記錄檔位置
LogLevel warn控制記錄在錯誤記錄檔檔案中的日誌資訊數量,可能值有debug、info、notice、warn、error、crit、alert、emerg
定義日誌格式
CustomLog logs/access_log common指定接入記錄檔的定位和格式,如果沒有在<VirtualHost>內定義這個指令,傳輸資訊將記錄在這裡,若定義了這個指令,則記錄在你指定的位置
ServerSignature On隨意的添加包含伺服器版本和虛擬機器主機名字一行資訊到server-generated輸出頁中
Alias /icons/ "/ var/www/icons/" 使用別名
設定目錄/var/www/icons許可權
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 本質上與Aliases一樣,除了這裡的文檔在請求時做為程式處理處理以外
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable控制server-generated目錄列表顯示特徵
AddIcon* 指令告訴伺服器不同副檔名的圖象檔案如何顯示,只適用於FancyIndexed指令
DefaultIcon /icons/unknown.gif為那些沒有顯式定義表徵圖的檔案提供處理
ReadmeName README.html指定伺服器預設尋找的README檔案的名字,並添加到目錄列表中
HeaderName HEADER.html指定目錄列表首碼檔案的檔案名稱
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t指定目錄索引忽略的和不包含在列表中的檔案名稱集合,支援shell類型的萬用字元
指定文檔的語言
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW以優先次序遞減的方式排列語言
ForceLanguagePriority Prefer Fallback在通訊的情況下或沒有可接受的語言匹配的情況下提供一個結果頁
AddDefaultCharset UTF-8為發送出的所有頁指定預設的字元集
AddType允許你為指定的檔案類型添加或覆蓋mime.types檔案中配置的MIME,AddHandler允許你映射確定的副檔名到“handlers”,與檔案類型無關的行為,這既能編譯到伺服器中也可以添加到Action指令中。
AddHandler type-map var這是預設的設定以允許Apache的“It Worked”頁能多種語言分發
使得能在在伺服器端分析包含(SSI)的.shtml文檔
這是一個國際化的出錯應答設定
更改標準的HTTP應答行為以處理己知的瀏覽器問題
③、虛擬機器設定(Virtual Hosts):
這是一個虛擬機器設定執行個體配置,沒啟用。
3、apache的應用。
⑴、apache的啟動。
啟動httpd有兩種方式,如所示,可以查詢日誌看到是否成功啟動:
啟動後,在瀏覽器中輸入本機地址顯示
這是一個apache的歡迎介面,因為根目錄/var/www/html為空白,當我在根目錄裡建立一個html檔案後,如:
此時網頁內容變了,如下:
⑵、配置個人使用者首頁。
先修改設定檔找到配置改為。
記得重啟,
接著建立個人使用者目錄,添加測試內容,注意許可權修改(很重要),
串連測試,發現打不開,
原來SELinux沒開啟對httpd的支援,作如下改變:
此時測試成功,
由於首頁的Options內有FollowSymLinks參數,因此也可以直接使用連結檔案串連到其他目錄,:
測試
⑶、啟動某個目錄的CGI程式執行許可權。
Apache預設目錄/var/www/cgi-bin放置要執行的CGI程式,其目錄許可權配置如下:
將其改為:,再找到#AddHandler
cgi-script .cgi一行,修改為:AddHandler cgi-script .cgi .pl,配置完成,重啟httpd。
接著建立測試CGI程式test.cgi且修改許可權,
輸入地址成http://218.108.235.78/cgi-bin/test.cgi功測試
⑷、.htaccess與網頁認證設定。
Apache提供有認證功能,使得能輕鬆設定要保護的網頁。
①、先建立要保護的目錄及資料,
②、修改設定檔,確儲存在如下配置:
這是把所有以.ht開頭的檔案做限制,阻止Web客戶查看,然後添加配置如下:
③、接著在受保護目錄下建立.htaccess檔案,
這些紅線參數解釋為:AuthName顯示提示字樣;AuthType是認證類型,選擇預設的‘Basic’;AuthUserFile確定所要使用的帳號密碼檔案;require接可用的帳號。
④、建立密碼檔案apache.passwd,
注意檔案名稱要與.htaccess檔案裡的AuthUserFile一致。
⑤、測試,成功
⑸、設定虛擬機器主機
這裡的虛擬機器主機,指的是在一部主機上有多個‘主網頁’存在,實際這些網址都指向同一個IP。
①、先建立所需要的目錄,
②、配置虛擬機器主機,直接在目錄/etc/httpd/conf.d下建立單獨的設定檔virtual.conf,
注意,使用虛擬機器主機後,原本主機名稱也要寫入,圖上紅線標示的就是原本主機。記得重啟apache。
③、測試,修改C:\WINDOWS\system32\drivers\etc\hosts檔案,新增內容如下:,
使得網域名稱能解析成IP地址。配置成功如下: