Apache 2.4的主要目标之一是大幅改进性能,它也从Nginx借鉴了不少,增加了不少对高性能的支持。
它对缓存、代理模块、会话控制、异步读写支持等都进行了改进。
编译安装前需要两个重要的依赖库APR和PCRE,官方明确指出:
APR(Apache可移植运行库),主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。下载地址如下:http://archive.apache.org/dist/apr/
PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,
由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。
PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库。
PCRE被广泛使用在许多开源软件之中,最著名的莫过于Apache HTTP服务器和PHP脚本语言!
下载地址如下:http://www.pcre.org/
现在我们将需要的 apr-1.5.2.tar.gz,apr-util-1.5.2.tar.gz,httpd-2.4.29.tar.gz 上传至虚拟机/data/ide目录下!
1.安装apr
cd /data/ide
tar zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
2.安装apr-util
cd /data/ide
tar zxvf apr-util-1.5.2.tar.gz
cd apr-util-1.5.2
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
3.安装pcre
cd /data/ide
tar zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure --prefix=/usr/local/pcre
make && make install
4.安装Apache
// apache安装目录
mkdir /data/server/httpd
cd /data/ide
tar zxvf httpd-2.4.29.tar.gz
cd httpd-2.4.29
./configure --prefix=/data/server/httpd \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork \
--with-zlib \
--with-pcre=/usr/local/pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util
make && make install
// 复制apache启动文件到随机启动目录
cp /data/server/httpd/bin/apachectl /etc/init.d/httpd
// 赋予执行权限
chmod 755 /etc/init.d/httpd
// 修改htppd不支持chkconfig命令
vi /etc/init.d/httpd
# chkconfig: 35 85 15
# description: Apache Web Server
:wq
// 添加服务
chkconfig --add httpd
// 随机启动
chkconfig httpd on
// 解注释 ServerName
vi /data/server/httpd/conf/httpd.conf
ServerAdmin [email protected]
:wq
// 启动服务
service httpd start
// 查看版本
/data/server/httpd/bin/apachectl -v
最后我们解释一下编译Apache的参数:
--enable-so // 允许运行时加载DSO模块
--enable-ssl // 启用https, 此项需要先安装openssl-devel包,我们需要使用yum安装
--enable-cgi // 允许使用cgi脚本
--enable-rewrite // 支持URL重写机制
--enable-modules=most // 支持动态启用模块,most表示常用,all表示所有,以后自行到 httpd.conf 中决定是否开启模块
--enable-mpms-shared=all // 表示以共享方式启用哪些MPM模块(prefork、worker、event),all表示所有的
--with-mpm=prefork // 默认启用模块:prefork,worker,event
--with-zlib // 依赖zlib,用于支持压缩功能,我们已经使用yum安装了,
--with-pcre // 依赖的pcre
--with-apr // 依赖的apr
--with-apr-util // 依赖的apr-util
其实apache源码已经内置了 apr, 我们使用 --with-included-apr 就可以直接使用内置的!
关于 Apache 2.X 支持插入式并行处理模块,称为多路处理模块(MPM)就不在详细叙述!
简单的讲,Prefork 就是使用进程处理请求,高效安全,但是消耗内存!
Worker使用多线程多进程来处理请求,系统开销小,适合处理高并发应用。
点击下载用到的源码包: http://download.csdn.net/download/konkon2012/10126484