linux 下 httpd 2.4 的编译安装
Linux下httpd 2.4 的编译安装
说明
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)
prefer-non-pic -static -c ssl_engine_log.c && touch ssl_engine_log.lo
make[3]: *** [ssl_engine_io.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.18/modules/ssl'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.18/modules/ssl'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.18/modules'
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
更多推荐
所有评论(0)