一、Apache2.4新增特性

1.新增模块

mod_proxy_fcgi(可提供fcgi代理)
mod_ratelimit(限制用户带宽)
mod_request(请求模块,对请求做过滤)
mod_remoteip(匹配客户端的IP地址)
对于基于IP的访问控制做了修改,不再支持allow,deny,order机制,而是统一使用require进行。

2.MPM支持在运行时装载;不过要开启这种特性,在编译安装要启用这三种功能;
--enable-mpms-shared=all  --with-mpm=event
3.支持event,这是Apache最新的工作模式。

4.支持异步读写

5.在每个模块及每个目录上指定日志级别
6.增强版的表达式分析器

7.每请求配置:<If>, <Elseif>

8.毫秒级别的keepalive timeout

9.基于FQDN的虚拟主机不再需要NameVirtualHost指令

10.支持使用自定义变量

二、编译安装Apache2.4.23

系统环境:Centos7.3,关闭selinux

需要的源码包:

httpd-2.4.23.tar.gz

apr-1.5.2.tar.gz

apr-util-1.5.4.tar.gz

zlib-1.2.8.tar.gz

pcre-8.39.tar.gz

这里提前将这些包下载下来,并存放到了/root/目录下。

注:apr(Apache Portable Runtime)Apache可移植运行库,它是一个对操作系统调用的抽象库,用来实现Apache内部组件对操作系统的使用,提高系统的可移植性。

下面通过脚本实现Apache2.4.23的安装:

#install apr

tar zxf apr-1.5.2.tar.gz

cd apr-1.5.2/

./configure --prefix=/usr/local/apr

make

make install

#install apr-util

cd /root/

tar zxf apr-util-1.5.4.tar.gz

cd apr-util-1.5.4/

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make

make install

#install zlib

cd /root/

tar zxf zlib-1.2.8.tar.gz

cd zlib-1.2.8/

./configure --prefix=/usr/local/zlib

make

make install

#install pcre

cd /root/

tar zxf pcre-8.39.tar.gz

cd pcre-8.39/

./configure --prefix=/usr/local/pcre

make

make install

#install openssl

cd /root/

tar zxf openssl-1.0.1u.tar.gz

cd openssl-1.0.1u/

./config -fPIC --prefix=/usr/local/openssl enable-shared

make

make install

mv /usr/bin/openssl /usr/bin/openssl.1.0.1e

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

#install httpd

cd /root/

tar zxf httpd-2.4.23.tar.gz

cd httpd-2.4.23/

./configure --prefix=/usr/local/http-2.4.23 --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite  --with-pcre=/usr/local/pcre --with-z=/usr/local/zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate

make

make install

ln -s /usr/local/http-2.4.23/bin/* /usr/local/bin/

#Automatic startup after switch on

cp /usr/local/http-2.4.23/bin/apachectl /etc/init.d/httpd

sed -i '1i # chkconfig: 35 85 15\n# description: apache 2.4.23' /etc/init.d/httpd

chkconfig --add httpd

chkconfig httpd on

#startup httpd

sed -i '1i ServerName www.test.com'  /usr/local/http-2.4.23/conf/httpd.conf

/etc/init.d/httpd -t

/etc/init.d/httpd start

netstat -utpln | grep httpd

firewall-cmd --permanent --add-service=http

firewall-cmd --reload

注意:centos7自带版本openssl-1.0.1e对于apache2.4.23来说版本过低,需要下载安装openssl-1.0.1u

httpd配置的相关参数解释:

--enable-so:支持动态共享模块(即打开DSO支持)

--enable-rewrite:支持url重写

--enable-ssl:支持ssl

--with-ssl=/usr/local/openssl:指定ssl安装位置

--enable-cgi:启用cgi

--enable-cgid:MPM使用的是event或worker要启用cgid

--enable-modules=most:明确指明要静态编译到httpd二进制文件的模块,<MODULE-LIST>为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分常用模块

--enable-mods-shared=most:明确指明要以DSO方式编译的模块,<MODULE-LIST>为空格分隔的模块名列表、all或者most,all表示包含所有模 块,most表示包含大部分模块

--enable-mpms-shared=all:启用MPM所有支持的模式,这样event、worker、prefork就会以模块化的方式安装,要用哪个就在 httpd.conf 里配置就好了。

--with-mpm=event:指定启用的mpm模式,默认使用enevt模式,在apache的早期版本2.0默认prefork,2.2版本是worker,2.4版本是event.

--with-pcre=/usr/local/pcre:支持pcre

--with-z=/usr/local/zlib:使用zlib压缩库

--with-apr=/usr/local/apr:指定apr的安装路径

--with-apr-util=/usr/local/apr-util:指定apr-util的安装路

--enable-expires:激活彧通过配置文件控制HTTP的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css等内容,提供客户端浏览器缓存的设置。这个是apache调优的一个重要选项之一。

--enable-deflate:提供对内容的压缩传输编码支持,一般是html、js、css等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是apache调优的一个重要选项之一。

二、安装完成后出现的问题及及解决方法

可以看到80端口处于监听状态,说明httpd服务正常。但是,查看其状态时报错,说是”lynx”这个命令没有找到。下面,就这个问题说明一下解决的思路和方法。

“lynx”是一种纯文本模式的网页浏览器,”lynx”命令找不到可能是因为该软件包并没有安装。

安装”lynx”之后,再查看httpd的状态,提示说请求的URL中”/server-status”找不到,那么我们可以看一下httpd启动脚本中关于”/server-status”的信息:

从注释中可以看出这个URL链接的是mod_status这个模块的状态页,之前的报错信息说明这个状态页找不到,那有可能是主配置文件中并没有该资源的配置信息。

通过以上步骤,可以确定”/server-status”这个状态页信息是定义在httpd-info.conf这个配置文件中的,那么我们便需要在主配置文件中加载httpd-info.conf,去掉配置行”Include conf  /extra/httpd-info.conf”之前的”#”即可。

优雅启动httpd服务,再次查看其状态,发现没有权限查看该状态页,那就修改httpd-info.conf,赋予查看该状态页的权限:

优雅启动httpd,查看其状态成功!

转载于:https://blog.51cto.com/fengjicheng/1916678

安装Apache2.4.23相关推荐

  1. LAMP编译安装(一)——安装Apache2.4

    背景介绍 LAMP是LNMP结构提出之前风靡了很久的结构,本系列就从无到有一点点介绍LAMP的编译安装.首先,介绍下本系列的拓扑结构图 此时服务器响应客户端访问可以分为几种应答方式: 1.客户端向服务 ...

  2. linux源码安装apache2,CentOS7编译安装Apache2

    在LAMP环境下对于服务的安装是必不可少的,在linux环境下安装软件也有两种不同的方式,一种是yum安装当然了不同的linux发行版本使用略有不同,另一种是通过编译安装,编译安装要比yum安装要可控 ...

  3. linux pureftp mysql_在Ubuntu下安装apache2+php5+mysql5+pureftp+ftp

    在Ubuntu下安装apache2+php5+mysql5+pureftp+ftp 一.安装Ubuntu7.04 Desktop版 二.ubuntu Linux下手工安装mysql5 1.下载mysq ...

  4. ubuntu libapache2-mod-php5,ubuntu安装apache2 mysql5 php5

    1.安装apache2 apt-get install -y apache2 2.安装mysql5 apt-get install -y mysql-server 3.安装php5 apt-get i ...

  5. CentOS6.5下安装Apache2.4+PHP7

    CentOS6.5下安装Apache2.4+PHP7 http://blog.csdn.net/along602/article/details/42695779 http://www.th7.cn/ ...

  6. 编译安装php apache,CentOS编译安装Apache2.4+PHP5.6

    CentOS下YUM安装PHP和Apache是比较简单的,可是一般默认情况下的PHP版本是5.3,Apache版本是2.2.因为考虑到PHP版本和Apache版本越高性能越好,就打算在CentOS下编 ...

  7. resin php mysql_RedhatAS4.0上安装Apache2+PHP5+MySQL+Resin+SSL+GD+webalizer

    RedhatLinuxAS4.0上安装Apache2.0.50+MySQL+PHP5+Resin+SSL+GD以及日志分析工具(webalizer) 版权声明:本文可以任意转载,转载时请保持文章的完整 ...

  8. linux apache fcgi,编译安装apache2.2对应的mod_proxy_fcgi.so模块步骤,因为使用apache--phpfpm 需要这个...

    本文将要为您介绍的是编译安装apache2.2对应的mod_proxy_fcgi.so模块步骤,因为使用apache--phpfpm 需要这个,具体操作过程: 编译安装apache2.2对应的mod_ ...

  9. mysql 5.6.23 源码包安装报错_CentOS6.5_64bit下编译安装MySQL-5.6.23

    ************************************************************ CentOS6.5_64bit下编译安装MySQL-5.6.23 ****** ...

最新文章

  1. 使用swoole编写简单的echo服务器
  2. mysql分组后组内排序_数据小白的转行之路-MYSQL(七)
  3. 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击...
  4. 深度学习之自编码器(3)自编码器变种
  5. html怎样将单元格的字竖式,数学竖式计算的标准格式是怎样的?需要注意哪些问题?...
  6. python合并两个文本文件内容_利用python自带插件合并多个excle文件内容
  7. 剑指offer_第一个只出现一次的字符
  8. Python精通-运算符与基本数据类型(三)
  9. 遗传算法应用于XGBoost的调参过程
  10. API 库的文档体系支持:主流编程语言的文档设计
  11. Callnovo全球联络中心云通讯CRM平台系列(一)
  12. Google Play开发者账号注册、GoogleWallet解封及收款教程
  13. 微信小程序监听手势左右滑动
  14. 自用力扣笔记备忘录——数组tag简单题
  15. 最新苹果CMS海螺模版V4.0修复版+自适应带后台
  16. Linux ping命令,检测网络是否连通
  17. 苹果服务器维护时间表2019,苹果更新电脑键盘服务维修计划机型 含2019最新款
  18. google adsence收款超过5w美金额度该怎么继续收款?
  19. c++类和对象(类的概念)
  20. D-Link宽带路由器设置全攻略

热门文章

  1. Struts文件下载
  2. 使用Spring AOP中MethodInterceptor记录日志
  3. 通过FTP4J 实现 FTPS 连接
  4. CMD-NET命令详解、NET命令大全(转)
  5. WPF中的容器控件——canvas
  6. 原创:MS Dynamics AX - XBRL 功能
  7. php 文件名汉字utf8,php utf8编码上传中文文件名出现乱码_PHP教程
  8. MySQL from后面的子查询使用
  9. RabbitMQ快速入门--简单队列模型
  10. Dubbo中负载均衡的应用