Httpd2.4简介及CenOS6.6下编译安装

CentOS7的镜像中已经提供了httpd2.4的rpm包,httpd2.4相对于httpd2.2有较大的改进,在CentOS6下只能通过Apache官方网站提供的源码包编译安装。

httpd2.4新特性:

MPM支持运行DOS机制;

支持event MPM;

支持异步读写;

支持每模块及每个目录分别使用各自的日志级别;

每请求配置;<If>

增强版的表达式分析器;

支持毫秒级的keepalive timeout;

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

支持用户自定义变量;

新模块:

mod_proxy_fcgi#与PHP结合的模块;

mod_ratelimit#限制下载速率的模块;

mod_remoteip#设定远程客户端IP;

修改的配置机制:不再支持使用order,allow,deny定义基于ip的访问控制,改为require;

编译安装Httpd2.4:

httpd2.4依赖于apr和apr-util,1.4以上版本,所以需要一同编译安装;

apr:ApachePortable Runtime,Apache可移植运行时;

官网:apr.apache.org

实验环境:

系统版本:CentOS 6.6x86_64;

httpd源码包:httpd-2.4.16.tar.bz2;

apr源码包:apr-1.5.2.tar.bz2;

apr-util源码包:apr-util-1.5.4.tar.bz2

实验前提:

关闭防火墙和SELinux;

安装编译环境;

# yum groupinstall "Server Platform Development" "Developmenttools"

实验过程:

一、安装服务;

apr:

# tar xf apr-1.5.2.tar.bz2
# cd apr-1.5.2
#./configure --prefix=/usr/local/apr
# make && make install

apr-util:

# tar xf apr-util-1.5.4.tar.bz2
# cd apr-util-1.5.4
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
    --with-apr=/usr/local/apr/    :指明apr安装位置;
# make && make install

httpd:

# tar xf httpd-2.4.16.tar.bz2
# cd httpd-2.4.16
#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=all --enable-mpms-shared=all --with-mpm=event
# make && make install

httpd编译参数解释:

--prefix=/usr/local/apache    :安装位置;
--sysconfdir=/etc/httpd    :配置文件位置;
--enable-so    :支持DSO动态装载模块;
--enable-ssl    :支持SSL/TLS,可实现https协议访问,需要安装openssl-devel;
--enable-cgi    :支持CGI脚本;
--enable-rewrite    :支持URL重写;
--with-zlib    :使用指定的zlib压缩库,不指定路径会自动寻找;
--with-pcre    :使用指定的pcre库,增强的正则表达式分析工具;不指定路径会自动寻找 需已安装pcre-devel;
--with-apr=/usr/local/apr    :指定依赖apr程序安装位置;
--with-apr-util=/usr/local/apr-util    :指定依赖apr-util程序安装位置;
--enable-modules=all    :支持动态启用模块;all:所有,most:常用;
--enable-mpms-shared=all    :编译并共享模块;
--with-mpm=event    :默认启用模块;{prefork|worker|event}

二、参数配置;

接下来是安装完成之后的参数配置;

添加环境变量,并重读文件:

# vim /etc/profile.d/httpd.sh
> export PATH=/usr/local/apache/bin:$PATH
# source /etc/profile.d/httpd.sh

导出头文件;

# ln -sv /usr/local/apache/include /usr/include/httpd

导出man手册;

# vim /etc/man.config
> MANPATH /usr/local/apache/man

启动服务,查看监听端口;

# apachectl start
# ss –tnl

访问测试;

提供服务脚本:

可使用rpm包安装提供的脚本修改使用:

# vim /etc/rc.d/init.d/httpd
> #!/bin/bash
> #
> # httpdStartup script for the Apache HTTP Server
> #
> # chkconfig:- 85 15
> #description: Apache is a World Wide Web server. It is used to serve > #        HTML files and CGI.
> #processname: httpd
> # config:/etc/httpd/conf/httpd.conf
> # config:/etc/sysconfig/httpd
> # pidfile:/var/run/httpd.pid
>
> # Sourcefunction library.
> ./etc/rc.d/init.d/functions
>
> if [ -f/etc/sysconfig/httpd ]; then
>     . /etc/sysconfig/httpd
> fi
>
> # Starthttpd in the C locale by default.
> HTTPD_LANG=${HTTPD_LANG-"C"}
>
> # This willprevent initlog from swallowing up a pass-phrase prompt if
> # mod_sslneeds a pass-phrase from the user.
> INITLOG_ARGS=""
>
> # SetHTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
> # with thethread-based "worker" MPM; BE WARNED that some modules may not
> # workcorrectly with a thread-based MPM; notably PHP will refuse to start.
>
> # Path tothe apachectl script, server binary, and short-form for messages.
> apachectl=/usr/local/apache/bin/apachectl
> httpd=${HTTPD-/usr/local/apache/bin/httpd}
> prog=httpd
> pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
> lockfile=${LOCKFILE-/var/lock/subsys/httpd}
> RETVAL=0
>
> start() {
>     echo -n $"Starting $prog: "
>     LANG=$HTTPD_LANG daemon --pidfile=${pidfile}$httpd $OPTIONS
>     RETVAL=$?
>     echo
>     [ $RETVAL = 0 ] && touch${lockfile}
>     return $RETVAL
> }
> stop() {
>     echo -n $"Stopping $prog: "
>     killproc -p ${pidfile} -d 10 $httpd
>     RETVAL=$?
>     echo
>     [ $RETVAL = 0 ] && rm -f${lockfile} ${pidfile}
> }
> reload() {
>     echo -n $"Reloading $prog: "
>     if ! LANG=$HTTPD_LANG $httpd $OPTIONS-t >&/dev/null; then
>     RETVAL=$?
>     echo $"not reloading dueto configuration syntax err or"
>     failure $"not reloading$httpd due to configuration >syntax error"
>     else
>     killproc -p ${pidfile} $httpd-HUP
>     RETVAL=$?
>     fi
>     echo
> }
>
> # See how wewere called.
> case"$1" in
> start)
>     start
> ;;
> stop)
>     stop
> ;;
> status)
>     status -p ${pidfile} $httpd
>     RETVAL=$?
> ;;
> restart)
>     stop
>     start
> ;;
> condrestart)
>     if [ -f ${pidfile} ] ; then
>     stop
>     start
>     fi
> ;;
> reload)
>     reload
> ;;
> graceful|help|configtest|fullstatus)
>     $apachectl [email protected]
>     RETVAL=$?
> ;;
> *)
> echo $"Usage: $prog{start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
> exit 1
> esac
>
> exit $RETVAL

修改主配置文件指定pidfile;

# vim /etc/httpd/httpd.conf
> PidFile "/var/run/httpd.pid"

脚本执行权限;

# chmod +x /etc/rc.d/init.d/httpd

添加服务,测试脚本;

# chkconfig httpd –add
# chkconfig httpd on
# service httpd stop
# service httpd start
# service httpd restart
# service httpd reload

httpd2.4配置文件:

# /etc/httpd24    :编译安装时指定的配置文件目录;
# /etc/httpd24/httpd.conf    :主配置文件
# /etc/httpd24/extra/httpd-default.conf    :默认配置文件,keepalive、AccessFileName等设置;
# /etc/httpd24/extra/httpd-userdir.conf    :用户目录配置文件;
# /etc/httpd24/extra/httpd-mpm.conf    :MPM配置文件;
# /etc/httpd24/extra/httpd-ssl.conf    :SSL配置文件,为站点提供https协议;
# /etc/httpd24/extra/httpd-vhosts.conf    :虚拟主机配置文件;
# /etc/httpd24/extra/httpd-info.conf    :server-status页面配置文件;

至此httpd2.4的编译安装配置已完成,httpd2.4的配置与httpd2.2大致相同。

时间: 2024-10-06 01:20:42

Httpd2.4简介及CenOS6.6下编译安装的相关文章

Skia简介以及在Windows下编译操作步骤

Skia是一个C++的开源2D向量图形处理函数库(Cairo是一个矢量库),包括字型.坐标转换.位图等等,相当于轻量级的Cairo,目前主要用于Google的Android和Chrome平台,Skia搭配OpenGL/ES与特定的硬件特征,强化显示的效果.另外,Skia是WebKit支持的众多图形平台之一,在WebKit的GraphicsContext.h/.c中有相关实现. Android与Chrome的源代码库中都有一份Skia的复制,因需求不同,做了部分的修改. Skia需要的底层库有:f

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin+cacti+nagios 一.安装环境 Linux系统:CentOS 6.5 Apache版本:http-2.4.12 MySQL版本:MySQL 5.6.24 PHP版本:PHP-5.6.8 基本的安装顺序为:先安装httpd,然后安装mysql,最后安装PHP. 软件包: [[email protected] httpdbao]# ll total 334908 -rwxrw-rw-. 1 root root

Linux 6 下编译安装 PHP 5.6

PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域.PHP以其开发源代码,免费,快捷,跨平台,高效,面向对象,强大的动态图像创建等功能深受广大开发者的喜爱.本文描述基于CentOS 6.7下编译安装PHP 5.6.9. 一.相关依赖包安装 1.演示环境 # more /etc/redhat-release CentOS rel

linux 6下编译安装配置LAMP平台

LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富.轻量.快速开发等特点,微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站

linux下编译安装php各种报错大集合

PHP开源脚本语言 PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域.PHP的文件后缀名为php. 本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. 报错1:make 后报错如下: Generating phar.php /home/oldboy/tools/php-5.3.27

Linux下编译安装qemu和libvirt

目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 2 安装libvirt 2.1 libvirt介绍 2.2 下载libvirt 2.3 编译安装 3 参考资料 KVM虚拟机(英语:Kernel-based Virtual Machine),是一种用于Linux内核中的虚拟化基础设施.KVM目前支援Intel VT及AMD-V的原生虚拟技术.KVM在2007年2月被导入Linux 2.6.20核心中.它也被引入FreeBSD.在Mac OS X中,

CentOS 6.4下编译安装MySQL 5.6.16

一.卸载旧版本MySql 1.rpm卸载: 1> 检查安装包: rpm -qa | grep mysql 2> 普通删除: rpm -e mysql-5.6.16.rpm 3> 强力删除.如果使用上面命令删除时,提示有依赖的其他文件,则使用该命令可以对其进行强力删除. rpm -e --nodeps mysql-5.6.16.rpm 2.tar卸载: 1> 删除临时文件: make clean 2> 卸载 make uninstall 3> 删除解压文件 rm  -rf

linux下编译安装boost库

转载:http://www.cnblogs.com/oloroso/p/4632848.html linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4.安装boost库到指定目录 5.测试一下 代码 编译运行 先看一下系统环境 Linux o-pc 3.19.0-22-generic #22-Ubuntu SMP Tue Jun 16 17:15:15

linux下编译安装nginx

1.首先下载稳定版nginx1.10.2 使用wget命令下载 wget http://nginx.org/download/nginx-1.10.2.tar.gz 2.然后解压 tar -zxvf nginx-1.10.2.tar.gz 3.安装依赖库 sudo apt-get install libpcre3-dev aptitude libssl-dev sudo apt-get install openssl sudo apt-get install libssl0.9.8 sudo a