Linux下httpd 2.4 的编译安装

Linux下httpd 2.4 的编译安装 

说明

       相比于httpd2.2,httpd 2.4 依赖于更高版本的apr、apr-util,apr(apache runtime portable)是一个可以使apache跨平台运行的库。httpd2.4 需要1.4以上的版本的apr。同时,还要安装正则表达式的依赖(rpm -qi pcre)。apr和apr-util的下载地址:  http://apr.apache.org/,pcre下载地址, http://www.pcre.org/

httpd2.4新特性

  • MPM支持在运行时装载,--enable-mpms-shared=all(将所有的MPM模块进行编译) ,--with-mpm=event 设定默认的MPM。
  • 支持event形式的MPM,httpd2.2 中的event还处于测试状态。
  • 支持异步读写
  • 在每模块及每目录上指定日志级别
  • 每请求配置:<If> <Elseif>
  • 具有增强版的表达式分析器
  • 毫秒级的keepalive timeout
  • 支持主机名的虚拟主机不在需要NameVirtualHost指令
  • 支持使用自定义变量
  • 新增一些模块:mod_proxy_fcgi,mod_ratelimit,mod_request,mod_remoteip
  • 对于基于IP的访问做了修改,不在使用order,allow,deny这些机制;而是统一使用require进行

安装步骤:

      1) 解决依赖关系

         yum -y install pcre pcre-devel

         在CentOS系统中编译安装httpd2.4时,出现错误:”util_pcre.c:128: error: 'PCRE_DUPNAMES' undeclared (first use in this function)“

         解决方法:出现这个错误的原因是因为系统的的PCRE库版本太低了,需要下载安装较高版本的PCRE。

          PCRE源码下载:http://www.pcre.org/

          配置路径:./configure  --prefix=/usr/local/pcre  (pcre-8.37)

      2) 编译安装apr (apr-1.5.2)
        tar 
        cd
        ./configure --prefix=/usr/local/apr(更改安装路径,防止将系统中的文件替换掉)
        make && make install
      3) 编译安装apr-util (apr-util-1.5.4)
         tar
         cd
         ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

         make && make install

     4) 编译httpd (httpd-2.4.18)

       tar
       cd
       ./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --enable-so  --enable-ssl --enable-cgi  --enable-rewrite  --with-zlib  --with-pcre=/usr/local/pcre  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util  --enable-modules=most  --enable-mpms-shared=all --with-mpm=event
       make && make install

      ./configure --prefix=/usr/local/httpd24    设定httpd的安装目录

                        --sysconfdir=/etc/httpd24     设定httpd的配置文件目录

                        --enable-so                           支持共享模块,如果没有这个PHP模块无法加入

                        --enable--ssl                         支持ssl

                        --enable-cgi                          支持cgi

                        --enable-rewrite                    支持url重写

                        --with-zlib                              支持zlib压缩,传输层的压缩(不指定具体的路径,默认在系统中搜索)

                        --with-pcre                            支持正则化(不指定具体的路径,默认在系统中搜索)

                        --with-apr=/usr/local/apr       指定apr的路径

                        --with-apr-util=/usr/local/apr-util  指定apr-util的路径

                        --enable-modules=most       指定要编译的模块(most/all)

                        --enable-mpms-shared=all   指定要编译mpm

                        --with-mpm=event                指定httpd默认的MPM的工作方式

        编译httpd2.4出现的错误:(http://forum.directadmin.com/showthread.php?t=52400

[plain]  view plain  copy
 print ?
  1. prefer-non-pic -static -c ssl_engine_log.c && touch ssl_engine_log.lo  
  2. make[3]: *** [ssl_engine_io.lo] Error 1  
  3. make[3]: *** Waiting for unfinished jobs....  
  4. make[3]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.18/modules/ssl'  
  5. make[2]: *** [all-recursive] Error 1  
  6. make[2]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.18/modules/ssl'  
  7. make[1]: *** [all-recursive] Error 1  
  8. make[1]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.18/modules'  
  9. make: *** [all-recursive] Error 1  
        解决方法:打开 httpd-2*/modules/ssl/ssl_engine_io.c的文件,在第220行的末尾添加上';'即可

后续的配置

       1 导出头文件
              ln -sv /usr/local/appache/include /usr/include/httpd
       2 导出库文件
              ldconfig -p 显示当前系统的库文件

              vim /etc/ld.so.conf.d/httpd.conf
       3 导出帮助文件

              vim  /etc/man.config

              在该文件中添加一个: MANPATH  /usr/loacal/httpd24/man

               man -M /usr/local/httpd24/man httpd ,指定路径
       4 修改环境变量

             vim  /etc/profile.d/httpd.sh

             export PATH=/usr/local/httpd24/bin:$PATH

       使用apachectl httpd 启动httpd即可。

       5  切换MPM

           cp httpd.conf{,.bak}

           vim httpd.conf , 编辑loadmodule,注释掉已有的mpm,开启要切换的mpm

猜你喜欢

转载自blog.csdn.net/j6915819/article/details/74938675