您的位置:首页 > 理论基础 > 计算机网络

LAMP环境搭建系列之三:编译安装Apache httpd 2.4.29

2017-11-20 11:07 501 查看
Apache 2.4的主要目标之一是大幅改进性能,它也从Nginx借鉴了不少,增加了不少对高性能的支持。

它对缓存、代理模块、会话控制、异步读写支持等都进行了改进。

编译安装前需要两个重要的依赖库APR和PCRE,官方明确指出:



APR(Apache可移植运行库),主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。

在早期 的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。

随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。

这样,APR的开发就从Apache中独立出来,Apache仅仅是使用APR而已。

一般情况下,APR开发包很容易理解为仅仅是一个开发包,不过事实上并不是。

目前,完整的APR实际上包含了三个开发包:apr、apr-util以及apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。
下载地址如下: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 you@example.com
:wq

// 启动服务
service httpd start

// 查看版本
/data/server/httpd/bin/apachectl -v



同时,我们可以通过IP访问!



最后我们解释一下编译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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: