編譯安裝apache

./configure --prefix=/application/apache.2.2.27/  \      //安裝時指定安裝位置

--enable-deflate  \                  //對傳輸文件進行壓縮

--enable-expires  \                  //瀏覽器緩存

--enable-headers  \                 //激活http頭部

--enable-modules=most  \      //加載apache模塊

--enable-so  \                          

--with-mpm=worker  \            //選擇apache的工作模式(支持高併發worker)

--enable-rewrite                      //僞靜態



apache有三種運行模式:
1, prefork MPM;

2, worker MPM;
3, perchild MPM.

 

prefork MPM
管理員應選擇prefork MPM來實施基於流程的Web服務器。雖然基於流程的服務器有一些速度較慢的性能,它們通過模塊來提供穩定性和兼容性,這些模塊不支持線程。爲了改進性能,服務器的父流程fork多個子流程並使它們能夠用於應答請求。當接收到請求時,服務器把其分配給子流程。如果沒有子流程可用,服務器創建新的子流程並把它添加到庫中。但是,子流程的創建會導致延遲。當配置這一MPM時,管理員可以限制啓動時可以創建的子流程數、最大的子流程數等。這一MPM有利於形成一個穩定的Apache服務器,但同時會影響性能和佔用內存,因爲單個流程的大小會佔很大一部分。

The worker MPM

爲了實施混合服務器,管理員可以選擇worker MPM,它提供比prefork MPM更卓越的可靠性、故障恢復能力和可擴展性。啓動時父流程創建規定數量的子流程,反過來每個子流程包含多個線程。每個子流程中只有一個線程聆聽網絡,它簡化了程序代碼,減少了流程之間的協作,從而提高性能。雖然這一MPM穩定且性能優於prefork,由於它是基於線程,與其一同使用的所有模塊都必須是完全的線程-安全。大多數Apache 1.3模塊不是線程安全,並且由於worker MPM不向後兼容,因此,使用這一MPM的管理員也不能一同使用Apache 1.3模塊和Apache 2.0。但是使用prefork MPM來編譯服務器允許管理員使用Apache 1.3模塊。

The perchild MPM
如果遇到這樣一種情況,考慮到安全性和性能,需要Apache流程基於不同的用戶ID來運行,管理員可以使用perchild MPM 來編譯混合服務器。互聯網服務供應商(ISP)通常使用這一MPM來實現虛擬託管。當perchild啓動時,它創建規定數量的流程,每個流程有規定數量的線程和專用的用戶ID。如果服務器上的負載增加,它使用現有流程之一來創建新線程,而不是創建新流程。這種MPM是最可擴展,但也最不可靠。



在安裝好mysql,apache,php後需要將apache和php進行關聯,修改/aaplication/apache/conf/httpd.conf

<IfModule dir_module>
    DirectoryIndex html.php index.html    添加index.php的主頁。
</IfModule>


AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .phtml    添加最後兩行,添加php解析
AddType application/x-httpd-php-source .phps


User www         修改默認的用戶名密碼,使系統更安全。
Group www


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章