一、编译安装Apache
1. 环境准备:
2. Apache2.4.9+新特性
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网站
3. 服务平台搭建
选择编译安装程序包,就必须确保已经配置好了开发平台,以及服务的开发平台
yum groupinstall “Development tools” “Server Platform Development –y” yum install –y “pcre-devel” yum install –y lrzsz #提供的是上传和下载的功能
4. 编译安装apr
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的某些特性跨平台的使用
5. 编译安装apr-util
# 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
2. 编译安装httpd2.4.9
1.编译Apache2.4.9
# 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”
2. 补充:
(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。
3. 参数设置
1. 导出库设置
[[email protected] apache]# ln -s /usr/local/apache/include/ /usr/include/httpd24
2. 输出二进制程序
Vim /etc/profile.d/httpd24.sh Export PATH=/usr/local/apach/bin:$PATH Source /etc/profile.d/httpd24.sh
3.导出man手册
Vim /etc/man.config MANPATH /usr/local/apache/man
4.测试
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