Centos7.4安装Apache2.4.23详细步骤

(yankerp-你不努力,未来没人替你买单!)


一、安装apache2.4.23
Apache官网:http://www.apache.org/
apache2.4新功能概述:

运行时可加载MPM

现在可以在编译时将多个MPM 构建为可加载模块。选择的MPM可以在运行时通过LoadModule指令进行配置。

事件MPM
该事件MPM的实验阶段,但现在完全支持。

异步支持
更好地支持异步读/写以支持MPM和平台。

每个模块和每个目录的LogLevel配置
在LogLevel现在可以按模块和每目录配置。新的水平trace1 ,以trace8已经在上面添加debug日志级别。
每请求配置部分
<If>, <ElseIf>和<Else> 段可以用来设置基于每个请求标准的配置。
通用表达式解析器
一个新的表达式分析器允许指定 复合物的条件在像指示使用共同的语法 SetEnvIfExpr, RewriteCond, Header, <If>,和其他。
KeepAliveTimeout以毫秒为单位
现在可以指定KeepAliveTimeout以毫秒为单位。
NameVirtualHost指令
不再需要,现已被弃用。
覆盖配置
新AllowOverrideList 指令允许更精细的控制.htaccess文件中允许的指令。
配置文件变量
现在Define ,配置中的变量是可能的,如果在配置中的许多地方使用相同的值,则允许更清楚的表示。
减少内存使用量
尽管有许多新功能,2.4.x往往比2.2.x使用更少的内存。

apache2.4新模块

mod_proxy_fcgi
FastCGI协议后端 mod_proxy
mod_proxy_scgi
SCGI协议后端为 mod_proxy
mod_proxy_express
提供动态配置的质量反向代理 mod_proxy
mod_remoteip
用代理或负载均衡器通过请求头提交的IP地址列表替换请求的明显客户端远程IP地址和主机名。
mod_heartmonitor, mod_lbmethod_heartbeat
允许mod_proxy_balancer基于后端服务器上活动连接的数量进行负载平衡决策。
mod_proxy_html
以前是第三方模块,它支持在反向代理情况下修复HTML链接,后端生成对代理客户端无效的URL。
mod_sed
一个先进的替代mod_substitute,允许编辑与sed的全部力量的响应身体。
mod_auth_form
启用基于表单的身份验证。
mod_session
为客户端启用会话状态,使用cookie或数据库存储。
mod_allowmethods
新的模块来限制某些HTTP方法,而不会干扰认证或授权。
mod_lua
将Lua语言嵌入到httpd中,用于配置和小型业务逻辑功能。(实验)
mod_log_debug
允许在请求处理的不同阶段添加可定制的调试日志记录。
mod_buffer
提供缓冲输入和输出过滤器堆栈
mod_data
将响应正文转换为RFC2397数据URL
mod_ratelimit
为客户端提供带宽限制
mod_request
提供过滤器来处理和提供HTTP请求体
mod_reflector
通过输出过滤器堆栈提供对请求体的反射作为响应。
mod_slotmem_shm
提供基于槽的共享内存提供程序(ala记分板)。
mod_xml2enc
以前是第三方模块,它支持基于libxml2(标记感知)过滤器模块的国际化。
mod_macro (从2.4.5开始可用)
在配置文件中提供宏。
mod_proxy_wstunnel (从2.4.5开始可用)
支持网络套接字隧道。
mod_authnz_fcgi (从2.4.10开始可用)
启用FastCGI授权人应用程序来验证和/或授权客户端。
mod_http2 (自2.4.17起可用)
支持HTTP / 2传输层。
mod_proxy_hcheck (自2.4.21起可用)

支持远程proxiy后端服务器的独立动态健康检查


正式安装Apache2.4 操作系统:Centos7.4,(需要关闭Selinux)
1.在每安装一个服务都要养成查看是否安装,如果安装则需要卸载:

#[root@yankerp ~]# rpm -qa | grep httpd
以下是如果之前系统已经安装httpd卸载方法:



2.安装apache2.4.23 (是编译安装那么就会需要用到源码包)在安装apache2.4.23需要的源码包如下:
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
以上包中apr是可移植的运行库,它是一个对操作系统调用的抽象库,用来实现apache内部组件对系统的使用,提高系统的可移植性,pcre zlib想必大家都很了解,这里不在概述。


1)下载安装apr和apr-util 在安装之前这些包我已经下载好了,同时大家可以使用以下链接来进行下载

apr官网地址http://apr.apache.org/download.cgi

#[root@yankerp ~]# wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz


安装:

# 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编译器。。。

# yum install gcc gcc-c++ -y

再次安装:


安装结束后使用echo $?来判断以上操作是否又报错,非0则不成功,若没有继续安装下一个包



2)安装apr-util(安装的方法和上边安装apr都是一样的) 最后make && make install

# wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz


2.安装zlib
zlib官网:http://www.zlib.net/

# 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/
# wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz



4.安装openssl(在安装apache2.4中它会提示openssl版本过于低,所以需要安装openssl)
openssl官网:https://www.openssl.org/

#wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz

make && make install


安装完的调整

#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
#tar zxf httpd-2.4.23.tar.gz
cd httpd-2.4.23/

make && make install
参数解释:
./configure --prefix=/usr/local/http-2.4.23 //指定apache的安装路径
--enable-so //这个是支持动态共享模块
--enable-rewrite //支持URL重写
--enable-ssl //支持ssl
--with-ssl=/usr/local/openssl //这个是指定openssl的安装位置
--enable-cgi //启用cgi
--enable-modules=most 指明要静态编译到httpd二进制文件的模块 all或者most,all代表包含所有的模块 most代表大部分的模块
--enable-mods-shared=most 指明要以DSO方式编译的模块,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 调优的一个重要选项之一

到这里必须要知道Apache的三种工作模式:event,worker,prefork !!!


在make && make install完成之后我们一定要echo $?来确保安装没过程中没有错误


此时我们的apache2.4已经正式的安装成功!!!


6.优化http程序执行路径

# ln -s /usr/local/http-2.4.23/bin/* /usr/local/bin/
修改配置文件设置ServerName
我们在安装apache的时候安装路径指定到了/usr/local/http2.4下面,我们进去http的安装位置查看有什么目录。


我们看到了一个conf目录,也就是说这个目录下面存放的就是我们apache的主配置文件,httpd.conf(修改servername)



7.开启apache服务



设置apache为开机自启动

#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 


添加为系统服务并自启动



修改网页根目录,client访问测试


以下是apache网页根目录(我们可以在里面更改想要的内容)



注意:如果做到这里httpd已经启动但是无法访问可能造成原因有以下几种:
1.清除浏览器缓存后再次访问。
2.没有关闭selinux会出现访问不到的情况
3.没有关闭防火墙,则需要添加80端口,或者可以选择关闭防火墙


2017年倒计时。。。 希望对您有所帮助,后续继续更新,再见~~

相关文章

linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
vim&#160;/etc/sysconfig/network-scripts/ifcfg-eth0 B...