CentOs下Apache配置全過程

來源:互聯網
上載者:User

⒈ 源碼包安裝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地址。配置成功如下:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.