Apache-2.4+的一些新特性(参见https://httpd.apache.org/docs/2.4/zh-cn/new_features_2_4.html)
1. 运行时可装载的MPM
多的MPM现在可以构建为可加载模块在编译时。选择的MPM可以通过运行时配置的LoadModule指令。
2. 事件MPM(完全支持)
3. 异步支持
异步读/写支持的MPM和平台更好的支持。
4. 每个模块和每个目录的LogLevel配置
该LogLevel的,现在每个模块和每个目录进行配置。新的水平TRACE1 到trace8上述已添加的调试日志级别。
5. 每个请求的配置节
<如果>, <elseif的>,和<其它> 部分可以被用于设置根据每个请求的标准配置。
6. 通用表达式解析器
一个新的表达式解析器允许指定 复杂条件下像指令使用通用语法 SetEnvIfExpr, RewriteCond指令, 头, <如果>,及其他。
7. KeepAliveTimeout的以毫秒为单位
现在有可能以指定的KeepAliveTimeout毫秒。
8. NameVirtualHost指令
不再需要,现在已经过时。
9. 覆盖配置
新AllowOverrideList 指令允许该指令被允许在更细粒度控制的.htaccess文件。
10. 配置文件变量
它现在可以定义 变量的结构中,允许更清楚地表示,如果相同的值是在配置许多地方使用。
11. 减少内存使用
12. 尽管有许多新的功能,2.4.x的倾向于使用比2.2.x中更少的内存
当然,在httpd2.4上也增加一个一些新的模块,大家可以参考apache网站
选择编译安装程序包,就必须确保已经配置好了开发平台,以及服务的开发平台
yum groupinstall “Development tools” “Server Platform Development �y” yum install �y “pcre-devel” yum install �y lrzsz #提供的是上传和下载的功能
tar xf apr-1.5.0.tar.bz2 cd apr-1.5.0 ./configure --prefix=/usr/local/apr make && make install
作用:apr:apache portable run-time是apache运行时环境,为了能使apache运行在不同的平台上并且能使用同样的机制,所以apr能够抹除不同系统的数据库,让apache运行环境的机制都一样,并且能让apache的某些特性跨平台的使用
# tar xf apr-util-1.5.3.tar.bz2 # cd apr-util-1.5.3 # ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr # make && make install
# tar xf httpd-2.4.9.tar.bz2 # cd httpd-2.4.9 # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24--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=event # make && make install
注意:在安装过程中,可能会出现一些错误,提示什么程序包没有安装,你可以把它安装后重新编译httpd
我遇见的问题有checking for OpenSSL version >= 0.9.8a... FAILEd
我的解决方案是” yuminstall -y openssl-devel”
(1)构建MPM为静态模块
在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。此命令会列出编译到服务器程序中的所有模块,包括 MPM。
(2)构建 MPM 为动态模块httpd -M
在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。
[root@bogon apache]# ln -s /usr/local/apache/include/ /usr/include/httpd24
Vim /etc/profile.d/httpd24.sh Export PATH=/usr/local/apach/bin:$PATH Source /etc/profile.d/httpd24.sh
Vim /etc/man.config MANPATH /usr/local/apache/man
apachectl start curl (本机ip地址)
5.添加服务脚本
关闭服务
Apachectl stop
修改httpd的主配置文件,设置其Pid文件的路径,编辑/etc/httpd24/httpd.conf,添加如下行即可:
PidFile "/var/run/httpd24.pid"
提供SysV服务脚本,
cp /etc/rc.d/init.d/httpd{,.bak}
vim /etc/rc.d/init.d/httpd,修改一下的内容即可,路径就是编译安装apache的路径
加入服务列表:
# chkconfig --add httpd
接下来就可以启动服务进行测试了。
Service httpd start