摘要:CentOS7的镜像中已经提供了httpd2.4的rpm包,httpd2.4相对于httpd2.2有较大的改进,在CentOS6下只能通过Apache官方网站提供的源码包编译安装。
httpd2.4新特性:
MPM支持运行DOS机制;
支持event MPM;
支持异步读写;
支持每模块及每个目录分别使用各自的日志级别;
每请求配置;
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;
安装编译环境;
#yumgroupinstall"ServerPlatformDevelopment""Developmenttools"
实验过程:
一、安装服务;
apr:
#tarxfapr-1.5.2.tar.bz2 #cdapr-1.5.2 #./configure--prefix=/usr/local/apr #make&&makeinstall
apr-util:
#tarxfapr-util-1.5.4.tar.bz2 #cdapr-util-1.5.4 #./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr/ --with-apr=/usr/local/apr/:指明apr安装位置; #make&&makeinstall
httpd:
#tarxfhttpd-2.4.16.tar.bz2 #cdhttpd-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&&makeinstall
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 >exportPATH=/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
启动服务,查看监听端口;
#apachectlstart #ss�tnl
访问测试;
提供服务脚本:
可使用rpm包安装提供的脚本修改使用:
#vim/etc/rc.d/init.d/httpd >#!/bin/bash ># >#httpdStartupscriptfortheApacheHTTPServer ># >#chkconfig:-8515 >#description:ApacheisaWorldWideWebserver.Itisusedtoserve >#HTMLfilesandCGI. >#processname:httpd >#config:/etc/httpd/conf/httpd.conf >#config:/etc/sysconfig/httpd >#pidfile:/var/run/httpd.pid > >#Sourcefunctionlibrary. >./etc/rc.d/init.d/functions > >if[-f/etc/sysconfig/httpd];then >./etc/sysconfig/httpd >fi > >#StarthttpdintheClocalebydefault. >HTTPD_LANG=${HTTPD_LANG-"C"} > >#Thiswillpreventinitlogfromswallowingupapass-phrasepromptif >#mod_sslneedsapass-phrasefromtheuser. >INITLOG_ARGS="" > >#SetHTTPD=/usr/sbin/httpd.workerin/etc/sysconfig/httpdtouseaserver >#withthethread-based"worker"MPM;BEWARNEDthatsomemodulesmaynot >#workcorrectlywithathread-basedMPM;notablyPHPwillrefusetostart. > >#Pathtotheapachectlscript,serverbinary,andshort-formformessages. >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_LANGdaemon--pidfile=${pidfile}$httpd$OPTIONS >RETVAL=$? >echo >[$RETVAL=0]&&touch${lockfile} >return$RETVAL >} >stop(){ >echo-n$"Stopping$prog:" >killproc-p${pidfile}-d10$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$"notreloadingduetoconfigurationsyntaxerror" >failure$"notreloading$httpdduetoconfiguration>syntaxerror" >else >killproc-p${pidfile}$httpd-HUP >RETVAL=$? >fi >echo >} > >#Seehowwewerecalled. >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$@ >RETVAL=$? >;; >*) >echo$"Usage:$prog{start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" >exit1 >esac > >exit$RETVAL
修改主配置文件指定pidfile;
#vim/etc/httpd/httpd.conf >PidFile"/var/run/httpd.pid"
脚本执行权限;
#chmod+x/etc/rc.d/init.d/httpd
添加服务,测试脚本;
#chkconfighttpd�add #chkconfighttpdon
#servicehttpdstop #servicehttpdstart #servicehttpdrestart #servicehttpdreload
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大致相同。
本文出自 “小马的学习记录” 博客,请务必保留此出处http://masachencer.blog.51cto.com/8683770/1682809
相关文章推荐
虚拟主机的专业参数,分别都是什么意思?2022-09-09
中非域名注册规则是怎样的?注册域名有什么用处? 2022-01-10
HostEase新年活动促销 美国/香港主机全场低至五折2021-12-28
HostGator下载完整备份教程分享2021-12-28
Flink中有界数据与无界数据的示例分析2021-12-28