(yankerp-你不努力,未来没人替你买单!)@H_502_4@
一、安装apache2.4.23
Apache官网:@H_502_4@http://www.apache.org/@H_502_4@
apache2.4新功能概述:
@H_502_4@
运行时可加载MPM@H_502_4@
现在可以在编译时将多个MPM 构建为可加载模块。选择的MPM可以在运行时通过LoadModule指令进行配置。
@H_502_4@
事件MPM@H_502_4@
该事件MPM的实验阶段,但现在完全支持。
@H_502_4@
异步支持@H_502_4@
更好地支持异步读/写以支持MPM和平台。
@H_502_4@
每个模块和每个目录的LogLevel配置@H_502_4@
在LogLevel现在可以按模块和每目录配置。新的水平trace1 ,以trace8已经在上面添加debug日志级别。
每请求配置部分@H_502_4@
<If>, <ElseIf>和<Else> 段可以用来设置基于每个请求标准的配置。
通用表达式解析器@H_502_4@
一个新的表达式分析器允许指定 复合物的条件在像指示使用共同的语法 SetEnvIfExpr, RewriteCond, Header, <If>,和其他。
KeepAliveTimeout以毫秒为单位@H_502_4@
现在可以指定KeepAliveTimeout以毫秒为单位。
NameVirtualHost指令@H_502_4@
不再需要,现已被弃用。
覆盖配置@H_502_4@
新AllowOverrideList 指令允许更精细的控制.htaccess文件中允许的指令。
配置文件变量@H_502_4@
现在Define ,配置中的变量是可能的,如果在配置中的许多地方使用相同的值,则允许更清楚的表示。
减少内存使用量@H_502_4@
尽管有许多新功能,2.4.x往往比2.2.x使用更少的内存。
@H_502_4@
apache2.4新模块@H_502_4@
mod_proxy_fcgi@H_502_4@
FastCGI协议后端 mod_proxy
mod_proxy_scgi@H_502_4@
SCGI协议后端为 mod_proxy
mod_proxy_express@H_502_4@
提供动态配置的质量反向代理 mod_proxy
mod_remoteip@H_502_4@
用代理或负载均衡器通过请求头提交的IP地址列表替换请求的明显客户端远程IP地址和主机名。
mod_heartmonitor, mod_lbmethod_heartbeat@H_502_4@
允许mod_proxy_balancer基于后端服务器上活动连接的数量进行负载平衡决策。
mod_proxy_html@H_502_4@
以前是第三方模块,它支持在反向代理情况下修复HTML链接,后端生成对代理客户端无效的URL。
mod_sed@H_502_4@
一个先进的替代mod_substitute,允许编辑与sed的全部力量的响应身体。
mod_auth_form@H_502_4@
启用基于表单的身份验证。
mod_session@H_502_4@
为客户端启用会话状态,使用cookie或数据库存储。
mod_allowmethods@H_502_4@
新的模块来限制某些HTTP方法,而不会干扰认证或授权。
mod_lua@H_502_4@
将Lua语言嵌入到httpd中,用于配置和小型业务逻辑功能。(实验)
mod_log_debug@H_502_4@
允许在请求处理的不同阶段添加可定制的调试日志记录。
mod_buffer@H_502_4@
提供缓冲输入和输出过滤器堆栈
mod_data@H_502_4@
将响应正文转换为RFC2397数据URL
mod_ratelimit@H_502_4@
为客户端提供带宽限制
mod_request@H_502_4@
提供过滤器来处理和提供HTTP请求体
mod_reflector@H_502_4@
通过输出过滤器堆栈提供对请求体的反射作为响应。
mod_slotmem_shm@H_502_4@
提供基于槽的共享内存提供程序(ala记分板)。
mod_xml2enc@H_502_4@
以前是第三方模块,它支持基于libxml2(标记感知)过滤器模块的国际化。
mod_macro @H_502_4@(从2.4.5开始可用)
在配置文件中提供宏。
mod_proxy_wstunnel @H_502_4@(从2.4.5开始可用)
支持网络套接字隧道。
mod_authnz_fcgi @H_502_4@(从2.4.10开始可用)
启用FastCGI授权人应用程序来验证和/或授权客户端。
mod_http2 @H_502_4@(自2.4.17起可用)
支持HTTP / 2传输层。
mod_proxy_hcheck @H_502_4@(自2.4.21起可用)@H_502_4@
支持远程proxiy后端服务器的独立动态健康检查
@H_502_4@
@H_502_4@
正式安装Apache2.4 操作系统:Centos7.4,(需要关闭Selinux)@H_502_4@
1.在每安装一个服务都要养成查看是否安装,如果安装则需要卸载:@H_502_4@
#[root@yankerp ~]# rpm -qa | grep httpd以下是如果之前系统已经安装httpd卸载方法:@H_502_4@
2.安装apache2.4.23 (是编译安装那么就会需要用到源码包)在安装apache2.4.23需要的源码包如下:@H_502_4@
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@H_502_4@
以上包中apr是可移植的运行库,它是一个对操作系统调用的抽象库,用来实现apache内部组件对系统的使用,@H_502_4@提高系统的可移植性,pcre zlib想必大家都很了解,这里不在概述。@H_502_4@
1)下载安装apr和apr-util 在安装之前这些包我已经下载好了,同时大家可以使用以下链接来进行下载@H_502_4@
apr官网地址http://apr.apache.org/download.cgi@H_502_4@@H_502_4@
#[root@yankerp ~]# wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz
安装:
@H_502_4@
# tar zxf apr-1.5.2.tar.gz [root@yankerp ~]# cd apr-1.5.2/ [root@yankerp apr-1.5.2]# ./configure --prefix=/usr/local/apr && make && make install
如果出现了以上情况,需要安装gcc编译器。。。@H_502_4@
@H_502_4@
# yum install gcc gcc-c++ -y
再次安装:
安装结束后使用echo $?来判断以上操作是否又报错,非0则不成功,若没有继续安装下一个包@H_502_4@
2)安装apr-util(安装的方法和上边安装apr都是一样的) 最后make && make install@H_502_4@
# wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz@H_502_4@
2.安装zlib@H_502_4@
zlib官网:http://www.zlib.net/@H_502_4@
# wget http://www.zlib.net/fossils/zlib-1.2.8.tar.gz tar zxf zlib-1.2.8.tar.gz [root@yankerp ~]# cd zlib-1.2.8/ [root@yankerp zlib-1.2.8]# ./configure --prefix=/usr/local/zlib && make && make install
3.安装pcre
pcre官网:https://ftp.pcre.org/@H_502_4@
@H_502_4@
# wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz
4.安装openssl(在安装apache2.4中它会提示openssl版本过于低,所以需要安装openssl)
openssl官网:https://www.openssl.org/
@H_502_4@
#wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz
make && make install
安装完的调整
@H_502_4@
#mv /usr/bin/openssl /usr/bin/openssl.1.0.1e [root@yankerp openssl-1.0.1u]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
5.以上操作都是为apache2.4准备的,接下来正式安装apache2.4@H_502_4@
#tar zxf httpd-2.4.23.tar.gz cd httpd-2.4.23/
make && make install
参数解释:
./configure --prefix=/usr/local/http-2.4.23@H_502_4@ //指定apache的安装路径
--enable-so@H_502_4@ //这个是支持动态共享模块
--enable-rewrite@H_502_4@ //支持URL重写
--enable-ssl@H_502_4@ //支持ssl
--with-ssl=/usr/local/openssl@H_502_4@ //这个是指定openssl的安装位置
--enable-cgi@H_502_4@ //启用cgi
--enable-modules=most @H_502_4@指明要静态编译到httpd二进制文件的模块 all或者most,all代表包含所有的模块 most代表大部分的模块
--enable-mods-shared=most@H_502_4@ 指明要以DSO方式编译的模块,all代表全部,most代表大部分
--enable-mpms-shared=all@H_502_4@ 启用MPM所有支持的模式,这样event,worker,prefork就会以模块化的方式安装,要用哪个就在httpd.conf里面配置就好了
--with-mpm=event@H_502_4@ 指定启用mpm模式,默认使用enevt模式,在apache的早期版本2.0默认prefork,2.2版本是worker 2.4版本是event.
--with-pcre=/usr/local/pcre@H_502_4@ 支持 pcre
--with-z=/usr/local/zlib@H_502_4@ 使用 zlib 压缩库
--with-apr=/usr/local/apr @H_502_4@指定 apr 的安装路径
--with-apr-util=/usr/local/apr-util @H_502_4@指定 apr-util 的安装路径
--enable-expires:激活彧通过配置文件控制 HTTP 的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css 等内容,提供客户端浏览器缓
存的设置。这个是 apache 调优的一个重要选项之一。
--enable-deflate:提供对内容的压缩传输编码支持,一般是 html、js、css 等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是 apache 调优的一个重要选项之一@H_502_4@
到这里必须要知道Apache的三种工作模式:event,worker,prefork !!!@H_502_4@
@H_502_4@
在make && make install完成之后我们一定要echo $?来确保安装没过程中没有错误@H_502_4@
此时我们的apache2.4已经正式的安装成功!!!@H_502_4@
6.优化http程序执行路径@H_502_4@
# ln -s /usr/local/http-2.4.23/bin/* /usr/local/bin/修改配置文件设置ServerName
我们在安装apache的时候安装路径指定到了/usr/local/http2.4下面,我们进去http的安装位置查看有什么目录。@H_502_4@
我们看到了一个conf目录,也就是说这个目录下面存放的就是我们apache的主配置文件,httpd.conf(修改servername)@H_502_4@
@H_502_4@
@H_502_4@
7.开启apache服务
@H_502_4@
@H_502_4@
设置apache为开机自启动@H_502_4@
@H_502_4@
#cp /usr/local/http-2.4.23/bin/apachectl /etc/init.d/httpd sed -i '1a # chkconfig: 35 85 21' /etc/init.d/httpd sed -i '2a # description: apache 2.4.23' /etc/init.d/httpd
@H_502_4@
@H_502_4@
以下是apache网页根目录(我们可以在里面更改想要的内容)
@H_502_4@
@H_502_4@
@H_502_4@
注意:如果做到这里httpd已经启动但是无法访问可能造成原因有以下几种:
1.清除浏览器缓存后再次访问。
2.没有关闭selinux会出现访问不到的情况
3.没有关闭防火墙,则需要添加80端口,或者可以选择关闭防火墙
@H_502_4@
2017年倒计时。。。@H_502_4@ 希望对您有所帮助,后续继续更新,再见~~ @H_502_4@