天天看點

Linux配置Apache2的經驗總結

apache原指http server程式,後來成為了該程式的組織名,是以把原程式名定成了httpd,在2.0版後又叫apache2。目前在windows上還叫httpd,在debian/ubuntu/linux mint系列的linux上,程式名是apache2。是以網上說httpd的資料,對apache2是部分适用的。官網本身也用httpd的說法,可以了解為httpd是産品名,apache2的可執行程式名。

把網站根目錄改去使用者分區,可避免修改個檔案都要root權限。方法:

2.2版:

/etc/apache2/sites-enabled/default 修改 DocumentRoot,并修改對應寫有原路徑(預設是/var/www)的Directory标簽,即要改兩處。DocumentRoot末尾不要加 / ,Directory标簽要加 / 。

2.4版:

/etc/apache2/sites-enabled/000-default.conf 修改 DocumentRoot,

/etc/apache2/apache2.conf 修改對應的Directory标簽

(以上兩種版本的sites-enabled下的配置檔案名可能和這裡的例子不同,各發行版會有自己的命名)

/etc/apache2/envvars 是apache程式的參數配置檔案,包括log路徑,程式使用的使用者名等。預設的log位置:/var/log/apache2/下有錯誤日志error.log和通路日志access.log。這些配置都會export出來, service apache2在運作前會source envvars檔案。如果手動運作apache2,就應該自己先source,否則會報一些參數未設定。

因為apache2在/usr/bin/下,是以指令行可在任何路徑下使用apache2指令。 apache2 -h會列出可用的指令。有用的:

-v 檢視版本

-V 檢視編譯時的設定

-l 檢視編譯時就內建的子產品

-L 檢視可用的配置檔案指令

-t 檢查所有配置檔案是否有文法錯誤

/etc/apache2/mods-available/下表示可用的子產品,load字尾存放子產品的路徑,conf字尾表示該子產品的配置。

/etc/apache2/mods-enabled/下表示已啟用的子產品,主配置檔案apache2.conf會引用到此目錄的所有檔案。此目錄下全是軟連結,可用ls -l看出來。把/etc/apache2/mods-available/下的檔案軟連結到/etc/apache2/mods-enabled/就會啟用對應的子產品。

配置檔案中 IfModule xxx 标簽表示xxx子產品啟用的話才加入裡面的參數

打開/etc/apache2/apache2.conf,找到<IfModule mpm_prefork_module>标簽

StartServers          啟動程式時就啟動多少個server程序

MinSpareServers       最小空閑server數

MaxSpareServers      最大空閑server數

MaxRequestsPerChild   每個server最多接受多少次請求。達到後就退出,這樣可避免記憶體洩露。設為0則不限。

以上可通過指令ps -ef | grep apache2 | wc -l 知道目前有幾個程序在運作。(實際為那個數字-2,因為會算上指令本身和service主程序)

apache2.conf裡面的參數屬于core module,這4個常用:

Timeout 逾時時間

KeepAlive On/Off 啟動或關閉KeepAlive

MaxKeepAliveRequests 最大的KeepAlive連接配接數

KeepAliveTimeout 最大的KeepAlive時間,逾時将關閉連接配接

繼續閱讀