昨天下午看到虚拟机上面默认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之旅啦。