昨天加班太晚了,沒什麼時間搞,進行繼續。。。。
前天基本就算是把apache安裝起來了,來點高階點的吧
1.大家都知道apache支援三種工作模式,prefork、worker、event,worker模式效能相對比較高,目前是大多web服務的首選,廢話不多說,先看安裝起來的apache的工作模式是什麼
重點關注到了prefork.c,那麼可以知道目前是prefork模式。到conf/extra/http-mpm.conf中,看到prefork的配置已經存在
# prefork mpm
# startservers: number of server processes to start
# minspareservers: minimum number of server processes which are kept spare
# maxspareservers: maximum number of server processes which are kept spare
# maxclients: maximum number of server processes allowed to start
# maxrequestsperchild: maximum number of requests a server process serves
startservers 5
minspareservers 5
maxspareservers 10
maxclients 150
maxrequestsperchild 0
這個是prefork模式對應的配置,各個配置項就不細說了,注釋裡面都解釋清楚了,這裡主要是prefork模式的程序數配置。
由於我現在想改為worker模式,我需要檢查一下這個配置檔案中是否已經存在worker模式的配置,找到了
# worker mpm
# startservers: initial number of server processes to start
# maxclients: maximum number of simultaneous client connections
# minsparethreads: minimum number of worker threads which are kept spare
# maxsparethreads: maximum number of worker threads which are kept spare
# threadsperchild: constant number of worker threads in each server process
# maxrequestsperchild: maximum number of requests a server process serves
startservers 2
maxclients 150
minsparethreads 25
maxsparethreads 75
threadsperchild 25
maxrequestsperchild 0
同樣的,這裡主要是worker模式的程序和執行緒數量的配置(如果不存在這個配置,需要新增一下)。檢查完這裡,還需要到conf/httpd.conf中保護這個httpd-mpm.conf檔案
由於apache的各個工作模式都在**級別做了相應的優化和加速,而且web服務與apache工作模式是有點關聯的,所以apache沒有將兩種模式的**一起編譯,apache的工程師們認為使用者應該在編譯安裝階段就確定好使用什麼模式。好了,開始真正的切換工作吧。
轉到apache根目錄,重新部署和編譯原始檔
./configure --prefix=/usr/local/apache2 --enable-so --with-mpm=worker
make
發現編譯的時候有好幾個error(忘了是哪幾個了),應該是之前prefork時產生的原始檔沒有替換掉,於是我直接把所有的檔案都刪除掉,重新來
./configure --prefix=/usr/local/apache2 --enable-so --with-mpm=worker
make
make install
make clean
跑到apache根目錄下
可以注意到有乙個worker.c,說明已經是worker工作模式,大功告成。啟動apache
2.修改vhost配置,支援動態網頁的輸出在conf/extra/httpd-vhost.conf的vhost配置中增加
scriptalias /cgi-bin/ "/usr/local/apache2/docs/cgi-examples/"
重啟apache,然後在瀏覽器中輸入
觀察到有執行了指令碼程式,並且返回了結果,這樣,表明apache已經支援動態輸出了。
到這裡,我的apache算是到了乙個里程碑了,能支援靜態輸出和動態輸出,能滿足**最基本的需求了。接下來會再接觸一些高階特性和功能,使之能達到真正的商用環境。
原始碼安裝Apache
root localhost rpm qa grep httpd檢視軟體包是否存在 apr 1.7.0.tar.gz apr util 1.6.1.tar.gz httpd 2.4.39.tar.gz安裝依賴環境 root localhost yum y install expat devel pc...
apache原始碼安裝
安裝相關依賴 yum install gcc,make,openssl,openssl devel安裝apache需要以下四個原始碼包 httpd.tar.gz 主程式包 apr.tar.gz 依賴包 apr util.tar.gz 依賴包 pcre.zip 依賴包首先安裝apr.tar.gz 解壓...
原始碼安裝apache
安裝依賴 yum y install gcc gcc c 編譯安裝 cd到httpd原始碼包所在目錄,解壓原始碼包。解壓原始碼包 切換到httpd目錄下 讓apache核心裝載dso,並指定安裝目錄為 usr local apache2 configure enable so prefix usr ...