httpd的编译安装及其服务配置

httpd-2.4版本新特性介绍。


在生产环境中,httpd服务在为了更适的贴合实际需求。往往需要我们自己编译安装定制适合自己的服务。这里使用最新版本httpd-2.4版本来进行编译安装的操作。编译安装前需要介绍一些关于httpd-2.4版本的一些新特性。

1.MPM:支持运行时动态装载;

    --enable-mpms-shared-all=all       这个选项表示把三个模块的都编译进来    --with-mpm=prefork|worker|event  默认使用那个模块 (也已经完成支持支持event)

2.支持异步读写;

  这里面异步读写尤其是在event模式下,能够很好的提高I/O性能。  

3.支持每模块及目录分别使用不同的日志级别;

4.增强版的表达式分析器;

5.支持毫秒级的Keepalive timeout (**),这个在生产中比较有用。

6.基于FQDN的虚拟主机不在需要NameVitualHost;而且基于IP限制访问的配置也不再支持Order Allow , deny模式。


httpd-2.4编译安装是的问题和建议

    1.httpd在编译安装时由于存在依赖关系,所以我们一般不建议卸载原来系统自带的httpd程序,而是通过给予新的httpd的包新的路径的方式来解决问题。

    2.我这里安装的httpd-2.4需要依赖于apr-1.4以上的包,所以在编译安装之前,需下载apr-1.4版本以上的安装包,我这使用的是apr-1.5.0版本的源码包。

    3.除此apr之外,新版的httpd还依赖apr-util包,但是由于apr-util依赖于apr包。所以这里需要先安装apr的包。

    4.所有这些包都安装完成后,我们开始下载httpd-2.4版本的源码包。 

另外,给出一点建议由于我们这里安装的源码包比较多,而且建议下载完第一包之后,进行编译安装然后利用安装的时间进行第二个的下载和解压。


httpd-2.4编译前准备:

编译前准备:每一次编译安装源码包都要实现配置好安装的编译环境。我们这里需要安装的源码包主要有:"Devellopmnet Tools" "server platform development" 

使用yum grouplist | grep -i "Development tools" 来进行查询是否安装过。另外还需要安装包"pcre-devel"

    1.在进行编译安装之前,由于的不同的包安装可能存在差异,有时需要阅读源码包中的README文件。下面./configure --prefix=/usr/local/apr15。这里下载源码包的过程就不在演示,直接进入编译环节。首先是编译安装apr,我这里是将自己源码包解压放在放在/usr/local。安装时指定路径--prefix=/usr/local/apr15。这样的目的是为了以后卸载时候能够方便一次性卸载删除。

    2.#make && make install 在执行玩这一步之后,我这里查看文件没有报错信息,而且生成了makefile文件那么下一步可以继续执行了。

    3.这步完成之后,我这里没有出现错误。下面就可以继续安装apr-util了。但是由于安装apr-util需要依赖apr包这里需要指明依赖包的为 --with-apr=/usr/local/apr15.

    4.同样的执行下#make && make install 这里不在截图。


编译安装httpd-2.4过程

    1.在编译安装httpd-2.4之前基于那些新改变需要介绍一些对应的选项。 --enable-so 支持DOS --enable-ssl 支持ssl --enable-cgi 支持cgi --enable-rewrite 支持url路径重写 --with-zlib支持zlib  --with-pcre 支持使用pcre  --with-apr=/usr/local/apr 指明依赖的apr --with-apr-util=/usr/local/apr-util/ 指明依赖的apr-util  --enable-mpms-shared=all 指明安装所有的包  --with-mpm=prefork使用默认的模块。这些选项可以根据自己需要自行选择,那么我这里测试安装就之安装一部分即可。

    2.下面就是 make && make install

    这样安装好了之后,我们可以开始对应的配置服务了。

  


编译好之后添加服务脚本    

    由于我们原本的基于rpm包安装的httpd没有卸载,这里其实没有必要全部重写服务脚本,直接cp 一份稍加修改即可。

     #cp /etc/rc.d/init.d/httpd /tmp      #cd /tmp      #vim  httpd

   

     很显然我们这里apachectl路径发生了变化,所以我这里修要修改的配置就是这里和下面的。

    

    除此之外还要注释掉这个if 语句。

    这样一个这个服务脚本就写好了。下面我们来添加脚本并启动。

   

     #cd /usr/local/apache/conf/httpd      #vim httpd      #PidFile /var/run/httpd/httpd.pid     //到/usr/local/apache/conf/httpd 文件下添加pidfile路径     #cd /tmp      #mv httpd httpd24                          #cp httpd24 /etc/rc.d/init.d/     #chkconfig --add httpd24     #vim /etc/profile.d/httpd.sh     #export PATH=/usr/local/apache/bin:$PATH     #service httpd24 start     #chkconfig--list | grep "httpd"

         下面一篇博客会学习关于httpd配置服务。