昨天下午看到虚拟机上面默认rpm包安装的apache,忽然觉得,留着干嘛,索性自己编译一个玩玩儿,于是呼,直接用yum删除了原有的rpm包,删完之后才发现,各种依赖全部被删除。

  好吧,看到被删除的这一堆包,我预料到的,我的编译之类肯定不会轻松到哪里去。话说为什么我一定要删掉原来的,自己编译一个呢,事情是这样滴,我看了一下默认安装的近程模式为prefork,n多档案都在说,worker的的模式有很多优点,那我就来看看两者之间的区别嘛,闲话不多说,正文开始。

   (无图无真相,但是总算有点记录的意思)

  首先,apache官网下载apache最新的源码包,似乎是2.4,回来之后解压,进入目录,./configure 好,问题出现,提示说找不到apr,乖乖,果然,依赖一并删掉就是麻烦呀,继续回到apache官网,下载apr,apr-util,记得好像都是1.4的版本。

  既然apr是apache的接口程序,必须,先把apr源码安装好了,apache,你又要被推迟了。

  好,解压apr,进入目录,./configure,乖乖,问题出现了,提示rm: cannot remove `libtoolT’: No such file or directory,没办法,google之,看到很多童鞋遇到这类问题,但是,奇怪的是,他们都是在安装mysql的时候遇到的问题,算了,死马当活马医吧,用一下他们提供的解决办法,事实证明,对apr的源码是无效滴。

  怎么办,查看readme文件,对啦,要知道,安装一格源码,readme才是最重要滴,之前一定要看,好了,readme里面找到了问题所在,原来,在config之前需要做buildconf的操作,那为什么有报错就不奇怪了。

  好,按照readme的步骤走,先./buildconf,咦不错,木有报错,继续,./configure ,啊哦,一样报错继续出现,难道,难道之前的config出了差错,好吧,删除这个解压包,重新解压,再来一遍。

  按照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之旅啦。