CentOS下Aapche配置全過程

源碼包安裝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.confapache啓動時就被載入;

/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/apachectlapache的主要啓動文件,其實是shell script

/usr/sbin/httpdapache的二進制啓動文件。

⑵、主配置文件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表示目錄內能進行的動作,設置有NoneAllIndexesFollowSymLinksExecCGIIncludesMultiViews選項的任意組合。None表示只能瀏覽;All則可以做任何事,但不包括MultiViewsIndexes表示在無首頁檔案時,顯示整個目錄下的檔案名稱;FollowSymLinks讓此目錄下的鏈接文件可鏈接出此目錄外;ExecCGI讓次目錄具有執行CGI程序的權限;Includes讓一些Server-Side Include程序可以執行;MultiViews與語系資料(language priority)有關。

AllowOverride表示是否允許額外配置文件.htaccess的權限啓用,覆蓋httpd.conf相關的設置,設置有ALLAuthConfigIndexesLimitsNoneALL表示完全啓用;AuthConfig僅有網頁認證時啓用;Indexes允許index方面的啓用;Limits允許使用者利用AllowDenyOrder管理可瀏覽的權限;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地址。配置成功如下:


發佈了4 篇原創文章 · 獲贊 13 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章