apache原始碼安裝筆記0815

2021-06-17 23:01:18 字數 4179 閱讀 1777

昨天加班太晚了,沒什麼時間搞,進行繼續。。。。

前天基本就算是把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 ...