昨天下午看到虛擬機上面默認rpm包安裝的apache,突然以爲,留着幹嗎,索性本身編譯一個玩玩兒,因而呼,直接用yum刪除了原有的rpm包,刪完以後才發現,各類依賴所有被刪除。mysql
好吧,看到被刪除的這一堆包,我預料到的,個人編譯之類確定不會輕鬆到哪裏去。話說爲何我必定要刪掉原來的,本身編譯一個呢,事情是這樣滴,我看了一下默認安裝的近程模式爲prefork,n多檔案都在說,worker的的模式有不少優勢,那我就來看看二者之間的區別嘛,閒話很少說,正文開始。sql
(無圖無真相,可是總算有點記錄的意思)apache
首先,apache官網下載apache最新的源碼包,彷佛是2.4,回來以後解壓,進入目錄,./configure 好,問題出現,提示說找不到apr,乖乖,果真,依賴一併刪掉就是麻煩呀,繼續回到apache官網,下載apr,apr-util,記得好像都是1.4的版本。ide
既然apr是apache的接口程序,必須,先把apr源碼安裝好了,apache,你又要被推遲了。ui
好,解壓apr,進入目錄,./configure,乖乖,問題出現了,提示rm: cannot remove `libtoolT’: No such file or directory,沒辦法,google之,看到不少童鞋遇到這類問題,可是,奇怪的是,他們都是在安裝mysql的時候遇到的問題,算了,死馬當活馬醫吧,用一下他們提供的解決辦法,事實證實,對apr的源碼是無效滴。google
怎麼辦,查看readme文件,對啦,要知道,安裝一格源碼,readme纔是最重要滴,以前必定要看,好了,readme裏面找到了問題所在,原來,在config以前須要作buildconf的操做,那爲何有報錯就不奇怪了。接口
好,按照readme的步驟走,先./buildconf,咦不錯,木有報錯,繼續,./configure ,啊哦,同樣報錯繼續出現,難道,難道以前的config出了差錯,好吧,刪除這個解壓包,從新解壓,再來一遍。rem
按照readme的步驟,./buildconf ,./confiure ,make ,make install OK,編譯完成,大功告成。源碼
接下來編譯apr-util,完成虛擬機
接下來回到apache,咱們開始編譯apache拉,啊哦,問題依然出現,缺乏libpcre,原本想要偷懶一點,利用yum把libpcre裝上呢,惋惜的是,yum源裏面竟然沒有這個庫,沒辦了,本身編譯吧,雖然幾經波折,可是最終,總算是pcre編譯成功,總算能夠編譯apache了,介於我編譯的依賴比較多,這些依賴的路徑須要在編譯apache的時候一條條制定,哇哇,顯得我很厲害呢。
./configure -prefix=PATH --with-mpm=worker --enable-so --enable-rewrite --apr=PATH --apr-util=PATH --apr-util=PATH --pcre=PATH
好了,接下來經過make &&make install就能夠享受奇妙的apache之旅啦。