Linux系统安装Apache
Apache简介
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
-
特点
模块化设置、开放源代码、跨平台应用、支持多种web编程语言、运行稳定; -
apache的常见三种模式
apache的核心模块叫多路处理模块Multi-Processing Module,简称MPM;-
MPM-prefork:多进程模式,一个进程处理一个连接,每个进程相对来讲都是独立的,这个过程会用到select机制来通知;
-
MPM-work:多进程多线程、一个进程开多个线程、每一个线程处理一个连接,但是通知机制还是select,不过可以接受更多的请求;
-
MPM-enent:worker的升级版、把服务器进程和连接进行分离,基于异步I/O模型。请求过来后进程并不处理请求,而是直接交由其他机制来处理,通过epoll机制来通知请求是否完成;在这个过程中,进程本身一直处于空闲状态,可以一直接收用户请求。可以实现一个进程响应多个用户请求。并且event模式对于keep-alive连接处理也有所优化,event模式有单独的线程处理keep-alive长连接,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力。
-
总结:
不同模式效率不同,主要用于调优、命令httpd -V查看当前使用模式;
httpd2.2版本默认的模式为prefork,httpd2.4版本默认的模式为event
-
Apache安装前准备
1、Apache软件下载
Apache的相关软件包下载地址:http://httpd.apache.org/download.cgi#apache24
2、APR and APR-Util包
截止目前为止,APR and APR-Util的最新版本如下,下载地址:http://apr.apache.org/download.cgi
3、 PCRE包
截止目前为止,PCRE最新的包为8.45,下载地址: https://sourceforge.net/projects/pcre/files/pcre/
4、本次安装所用安装包:
apr-1.7.0.tar.gz
apr-util-1.6.1.tar.gz
httpd-2.4.51.tar.gz
pcre-8.45.tar.gz
Apache安装过程
1.安装依赖包
[root@localhost ~]# yum -y install gcc make pcre-devel openssl-devel expat-devel
2.批量解压安装包
[root@localhost ~]# mkdir /data
[root@localhost ~]# for i in *.tar.gz -C /data; do tar xf $i;done
3.将apr和apr-util源码与httpd源码合并
[root@localhost ~]# cp -ar /data/apr-1.7.0 /data/httpd-2.4.53/srclib/apr
[root@localhost ~]# cp -ar /data/apr-util-1.6.1 /data/httpd-2.4.53/srclib/apr-util
4.判断是否存在且创建
[root@localhost ~]# [ -a /data/apache ]||mkdir -p /data/apache
5.编译并安装
[root@localhost ~]# cd httpd-2.4.51/
[root@localhost httpd-2.4.53]#./configure --prefix=/data/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
[root@localhost httpd-2.4.51]# make -j 8 &&make install
注释:
--prefix=/data/apache 指定安装位置;
--enable-so 支持动态共享模块;
--enable-ssl 支持ssl;
--enable-cgi 开启cgi通用网管接口;
--enable-rewrite 支持url重写;
--with-zlib 支持 zlib ;
--with-pcre 支持 pcre ;
--with-included-apr 支持apr ;
--enable-modules=most 编译成二进制是安装常用模块;
--enable-mpms-shared=all 安装apache的所有工作模式;
--with-mpm=prefork 指定apache工作模式
6.修改httpd.conf中ServerName www.example.com:80
[root@localhost ~]# vi /data/apache/conf/httpd.conf
#ServerName www.example.com:80
修改为
ServerName localhost:80
7.启动并验证
[root@localhost ~]# /data/apache/bin/apachectl start
[root@localhost bin]# netstat -utpln |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 47848/httpd
[root@localhost bin]# netstat -ant |awk '/^tcp/{S[$NF]++}END{for(a in S) print a,S[a]}'
LISTEN 3
ESTABLISHED 2
注解:
CLOSED 无连接是活动的或正在进行
LISTEN 服务器在等待进入呼叫
SYN_RECV 一个连接请求已经到达,等待确认
SYN_SENT 应用已经开始,打开一个连接
ESTABLISHED 正常数据传输状态/当前并发连接数
FIN_WAIT1 应用说它已经完成
FIN_WAIT2 另一边已同意释放
ITMED_WAIT 等待所有分组死掉
CLOSING 两边同时尝试关闭
TIME_WAIT 另一边已初始化一个释放
LAST_ACK 等待所有分组死掉