Apache服務器軟件介紹
網站只有發佈以後,用戶才能通過Web瀏覽器訪問到該網站中的信息資源。Web服務器軟件就是用於發佈網站的服務器,而Apache是世界使用排名第一的Web服務器軟件,它可以運行在幾乎所有廣泛使用的計算機平臺上。
Apache服務器所提供的資源其實就是一些文件,因此,管理員必須在服務器端先將數據文件寫好,並放置在某個特殊的目錄下,這個目錄就是整個網站的首頁位置。另外,客戶端必須在瀏覽器的“地址欄”輸入所需要的網址才行。
主要以Linux下源代碼包的安裝方法介紹Apache服務器的配置
Apache服務器的目錄結構
在Linux系統下使用源代碼包安裝Apache時,我們將Apache服務器的家目錄設置在/usr/local/apache2目錄下面。在學習Apache服務器配置之前首先了解一下Apache的目錄結構
Apache服務器配置庫文件目錄
- 除了要了解Apache家目錄下的子目錄的作用,還有兩個比較重要的目錄需要掌握,就是存入Apache配置文件和子配置文件的兩個目錄,如下所示:
- /etc/httpd/目錄:在通過源代碼包安裝Apache時,為Apache指定的主配置文件httpd.conf存放的目錄。
- /etc/httpd/extra/目錄:該目錄為Apache擴展及模塊配置文件目錄。最新版本Apache服務器不僅有一個httpd.conf作為主配置文件,還存在一些輔助配置文件被存放在這個目錄下。
Apache服務器配置文件說明
- /etc/httpd/httpd.conf 主配置文件
- /etc/httpd/extra/ //顯示/etc/httpd/extra/下面的所有附加配置文件
- httpd-autoindex.conf //配置目錄列表的輔配置文件
- httpd-dav.conf //配置DAV的輔配置文件
- httpd-default.conf //配置與Apache服務自身相關的輔配置文件
- httpd-info.conf //配置用於服務器信息和狀態顯示的輔配置文件
- httpd-languages.conf //配置語言支持的輔配置文件
- httpd-manual.conf //配置提供Apache文檔訪問的輔配置文件
- httpd-mpm.conf //配置多路處理模塊(MPM) 的輔配置文件
- httpd-multilang-errordoc.conf //配置多語言錯誤應答的輔配置文件
- httpd-ssl.conf //配置SSL模塊的輔配置文件
- httpd-userdir.conf //配置用戶主目錄的輔配置文件
- httpd-vhosts.conf //配置虛擬主機的輔配置文件
配置文件的語法格式
- 以“#”作為註釋符 ,註解不能出現在指令的後邊
- 使用變量賦值語法風格
- 文件的每一行包含一個指令,它告訴Apache服務器以某種特定的方式完成某一項特定的任務
- 在指令的行尾使用反斜槓“\\”可以表示續行,但是反斜槓與下一行之間不能有任何其他字符(包括空白字符)
- 配置文件中的指令是不區分大小寫的,但是指令的參數(argument)通常是大小寫敏感的
- 空白行和指令前的空白字符將被忽略,因此可以採用縮進以保持配置層次的清晰
- 要特別注意即使平臺本身是使用反斜槓(\\)來分隔路徑的 ,通常在配置文件裡只用正斜槓(/)來分隔路徑總是不會錯的
Apache服務器全局參數設置
在Apache 2.2以上以源碼包安裝的版本中,主配置文件httpd.conf中只包含少量的必須使用的一些與服務自身相關的指令,大部分指令都被分散保存在輔助配置文件中。可以用Include指令和通配符附加這些輔助配置文件到主配置文件httpd.conf中,但默認不附加任何其他輔助配置文件。如果使用其他輔助配置文件中的設置,就需要手動在主配置文件中加載。
在主配置文件httpd.conf中的全局參數
ServerRoot "/usr/local/apache2" #設置服務器目錄的絕對路徑
#Listen 12.34.56.78:80 #允許Apache綁定指定的IP或者端口,實現對其監聽
Listen 80 #Apache綁定指定的端口80
#以下幾行加載特定的DSO(Dynamic Shared Object)模塊
LoadModule deflate_module modules/mod_deflate.so
LoadModule expires_module modules/mod_expires.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module modules/libphp5.so #動態加載php5模塊
#設置子進程的用戶和組,<ifmodule>.../<ifmodule>配置段用於封裝根據指定的模塊是否啟用而決定是否生效的指令。在<ifmodule>配置段中的指令僅當test為真的時候才進行處理。如果test為假,所有其間的指令都將被忽略/<ifmodule>
<ifmodule>
<ifmodule>
User daemon #設置實際提供服務的子進程的用戶
Group daemon #設置提供服務的Apache子進程運行時的用戶組
ServerAdmin [email protected] #設置在返回給客戶端的錯誤信息中包含的管理員郵件地址
#ServerName www.example.com:80 #設置服務器用於辨識自己的主機名和端口號
DocumentRoot "/usr/local/apache2/htdocs" #設置Web文檔根目錄,默認存放網頁位置
<ifmodule>
DirectoryIndex index.html #指令用於指定目錄中默認的索引文件名稱
附加配置文件httpd-default.conf中的全局參數
Timeout 300
#服務器在斷定請求失敗前等待的秒數
KeepAlive On
#啟用HTTP持久鏈接
MaxKeepAliveRequests 100
#一個持久鏈接中允許的最大請求數量
KeepAliveTimeout 5
#持久鏈接中服務器在兩次請求之間等待的秒數
HostnameLookups Off
#啟用對客戶端IP的DNS查找
附加配置文件httpd-mpm.conf中的全局參數
#設置prefork多路處理模塊
<ifmodule>
StartServers 5 #設置服務器啟動時建立的子進程數量
MinSpareServers 5 #設置空閒子進程的最小數量
MaxSpareServers 10 #設置空閒子進程的最大數量
MaxClients 150 #設置Apache的最大連接數
MaxRequestsPerChild 0 #設置每個子進程在其生存期內允許伺服的最大請求數量
閱讀更多 PHP開發工程師 的文章