apache原指http server程序,後來成為了該程序的組織名,所以把原程序名定成了httpd,在2.0版後又叫apache2。目前在windows上還叫httpd,在debian/ubuntu/linux mint系列的linux上,程序名是apache2。所以網上說httpd的資料,對apache2是部分適用的。官網本身也用httpd的說法,可以理解為httpd是產品名,apache2的可執行程序名。
使用 sudo apt-get install apache2 就可以安裝,我的linux mint裝的是2.2版,Ubuntu13裝的是2.4版,兩者還有有點差別的。官方有指導文檔說從2.2升級到2.4要做什麼。http://httpd.apache.org/docs/2.4/upgrading.html。對用戶來說最直接的就是模塊數和名字有不同、配置文件位置有不同。
把網站根目錄改去用戶分區,可避免修改個文件都要root權限。方法:
2.2版:
/etc/apache2/sites-available/default 修改 DocumentRoot,並修改對應寫有原路徑(默認是/var/www)的Directory標簽,即要改兩處。DocumentRoot末尾不要加 / ,Directory標簽要加 / 。
2.4版:
/etc/apache2/sites-available/000-default.conf 修改 DocumentRoot,
/etc/apache2/apache2.conf 修改對應的Directory標簽
修改任何設置後,用命令sudo service apache2 restart重啟服務。轉載請注明出處:http://blog.csdn.net/hursing
/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模塊啟用的話才加入裡面的參數
apache2有多種並發處理模型MPM,可查看http://httpd.apache.org/docs/current/mpm.html了解詳情。默認是perfork模型,每個並發處理機都在一個獨立進程裡,其配置參數直接影響並發處理的性能。
2.2版:
打開/etc/apache2/apache2.conf,找到<IfModule mpm_prefork_module>標簽
StartServers 啟動程序時就啟動多少個server進程
MinSpareServers 最小空閒server數
MaxSpareServers 最大空閒server數
MaxRequestsPerChild 每個server最多接受多少次請求。達到後就退出,這樣可避免內存洩露。設為0則不限。
2.4版:
修改/etc/apache2/mods-enabled/mpm_perfork.conf,比2.2多一個參數。MaxRequestWorkers,最多的server數。如果這個數想填超過256,則要在之前加個參數MaxClients xxx。 http://httpd.apache.org/docs/current/mod/mpm_common.html有更多介紹。
以上可通過命令ps -ef | grep apache2 | wc -l 知道當前有幾個進程在運行。(實際為那個數字-2,因為會算上命令本身和service主進程)
apache2.conf裡面的參數屬於core module,這4個常用:
Timeout 超時時間
KeepAlive On/Off 啟動或關閉KeepAlive
MaxKeepAliveRequests 最大的KeepAlive連接數
KeepAliveTimeout 最大的KeepAlive時間,超時將關閉連接