httpd-2.4 新特性:
1、MPM支持运行为DSO机制,以模块形式按需加载
2、Event MPM生产环境可用
3、支持异步读写机制
4、支持每模块每目录的日志级别定义
5、每请求相关专用配置
6、增强版表达式分析器
7、毫秒级连接时长
8、基于FQDN的虚拟机不在需要NameVirtualHost指令
9、新指令,AllowOverrideList
10、支持用户自定义变量使用
11、更低的内存消耗
httpd-2.4 新模块:
1、mod_proxy_fcgi 支持php fastCGI工作模式
2、mod_proxy_scgi 代理时支持不同的协议功能,如Python
3、mod_remoteip 基于IP访问控制机制被改动 (allow from、deny from 被废弃)
CentOS 6安装httpd-2.4说明:
httpd-2.4依赖于较新版本的apr-1.4以上版本(apache portable runtime)和apr-util-1.4以上版本。而CentOS 6仅提供apr-1.3 ,apr-util-1.3版本。因此CentOS 6需要编译安装httpd-2.4及其依赖的apr-1.4和apr-util-1.4。
httpd-2.4编译安装步骤:
1、首先确保本机已安装的httpd-2.2服务停掉,如果没安装过那就更好了。
~]#service httpd stop ~]#chkconfif httpd off
2、构建编译安装环境:必须安装Development Tools,Server Platform Development、开发程序包pcre-devel
~]#yum groupinstall "Development Tools" "Server Platform Development" ~]#yum -y install pcre-devel 说明:yum源的配置这里就不介绍了,读者可以根据自己的情况进行安装。
3、编译安装apr-1.4以上(我用的是par-1.5版本做测试),获取到apr-1.4以上程序包。解压后进入apr-1.5目录,进行编译安装:
~]# cd ~/apr-1.5.0 ~]# ./configure --prefix=/usr/local/apr #环境检查 --prefidx 指定编译安装的路径 ~]# make && make install #编译,成功后将文件复制到/usr/local/apr中
4、编译安装apr-util-1.5
~]# cd ~/apr-util-1.5.3 # ./configure �C prefix=/usr/local/apr-util -�Cwith-apr=/usr/local/apr #环境检查 --prefidx 指定编译安装的路径 --with-apr 指定所依赖的包 ~]# make && make install #编译,成功后将文件复制到/usr/local/apr-util中
5、编译安装及环境配置
5.1编译安装
~]#useradd -r apache #创建名为apache的用户,默认创建同名的用户组 ~]# cd ~/httpd-2.4.9 ~]# ./configure --prefix=/usr/local/apache24 --sysconf=/etc/httpd24 --enable-so --enable-ssl \ > --enable-cgi --enable-rewrite --with-zlib �Cwith-pcre --with-apr=/usr/local/apr \ > --with-apr-util=/usr/local/apr-util/ --enable-modules=most�Cenable-mpms-shared=all \ > --with-mpm=prefork --sysconf :将其配置文创建在/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite :支持URL重写 --enable-mpms-shared=all :表示把三个模块全部编译出来。 --with-mpm :设置默认的mpm --with-zlib :依赖于zlib 可供压缩库 --with-pcre :支持于扩展正则表达式 不指明(=) 则到默认位置去 注:--with/--without 支持或不支持哪些依赖包 --enable/--disable 启用或禁用哪些特性 ~]# make && make install #编译,成功后将文件复制到/usr/local/apache24中
编译安装至此完毕,安装后的文件都有哪些呢?
~]# cd /usr/local/apache24 ~]# ls bin build cgi-bin conf error htdocs icons include logs man manual modules bin : apache可执行的二进制文件 include :报文首部 icons:资源存放位置 conf:配置文件 build:安装过程中产生的文件 ~]# cat /usr/local/apache24/build/config.nice 编译安装时的./configure 的命令 "./configure" \ "--prefix=/usr/local/apache24"\ "--enable-so" \ "--enable-ssl" \ "--enable-cgi" \ "--enable-rewrite" \ "--with-zlib" \ "--with-pcre" \ "--with-apr=/usr/local/apr"\ "--with-apr-util=/usr/local/apr-util/"\ "--enable-modules=most" \ "--enable-mpms-shared=all"\ "--with-mpm=prefork" \ "--sysconf=/etc/httpd24"\
此时启动服务必须到/usr/local/apache24/bin/目录中执行apachectl命令管理httpd进程。但如果需要httpd能够与其他服务一样正常启动,需要进行如下配置:
5.2环境配置
设置 全局环境变量
~]#vim/etc/profile.d/httpd.sh echoPATH=/user/local/apache24/bin:$PATH
导出头文件
~]# ln -sv /usr/local/apache24/include /usr/include/httpd
`/usr/include/httpd/include' -> `/usr/local/apache24/include'
加载库文件
~]# ldconfig -v # 重新加载库文件
~]# ldconfig -p #已加载所有库文件路径
服务管理设置
~]#cp/etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd24 ~]#vim/etc/rc.d/init.d/httpd24 apachectl=/usr/sbin/apachectl httpd=${HTTPD-/usr/local/apache24/bin/httpd} 此目录需要更改 prog=httpd pidfile=${PIDFILE-/usr/local/apache24/logs/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
将其加入到开机启动中
~]#chkconfig �Caddhttpd24 ~]#chkconfig�Clist httpd24
启动服务,httpd可以使用了
~]# service httpd start