目录

前言

一、HTTP协议介绍

二、安装依赖

三、安装apr

四、APR-util安装

五、apr-iconv安装

六、Apache安装

七、启动和测试Apache


前言

上图参考白树明老师!

一、HTTP 协议介绍

  • HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990 年提出,经过几年的使用与发展,得到不断地完善和扩展。
  • http 协议是一个 TCP 协议,采用 B/S(browser/server)模型,用来传递数据(HTML 文件,图片文件,查询结果等)

二、安装依赖

yum install -y pcre-devel libxml2 expat-devel gcc*

三、安装 apr

        APR(Apache portable Run-time libraries,Apache 可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的 Apache 版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。

3.1 离线下载 Apr 安装包(方式一,可用上面国内阿里源的下载地址速度快)

进入到 Apache Distribution Directory

选择需要安装的 apr 版本(tar.bz2 和 tar.gz 类型的都可以,只下载一个就行):

 再把下载好的包上传到服务器即可。

3.2 在线下载安装 Apr(方式二)

        如果在线下载 wget 报 404 可能是下载的版本不存在,更换已存在的版本号即可(后续下载的组件同理):

yum -y install wget     # 最小化安装需要现状 wget

# 在线下载
wget https://www.apache.org/dist/apr/apr-1.7.0.tar.bz2

yum -y install bzip2    # 用于最小化安装
tar xf apr-1.7.0.tar.bz2

cd apr-1.7.0

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

make

make install

        如果出现如下报错:连接到 www.apache.org 不安全,使用“不检查证书”加入 no-check-certificate 即可成功安装:

wget --no-check-certificate https://www.apache.org/dist/apr/apr-1.7.0.tar.bz2

四、APR-util 安装

        apr-util 该目录中也是包含了一些常用的开发组件。这些组件与 apr 目录下的相比,它们与apache的关系更加密切一些。比如存储段和存储段组,加密等等。

Apr-util 下载地址:Index of /apr (apache.org)

[root@CentOS01 ~]# wget --no-check-certificate https://www.apache.org/dist/apr/apr-util-1.6.1.tar.bz2

[root@CentOS01 ~]# tar xf apr-util-1.6.1.tar.bz2

[root@CentOS01 ~]# cd apr-util-1.6.1

[root@CentOS01 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[root@CentOS01 apr-util-1.6.1]# make

[root@CentOS01 apr-util-1.6.1]# make install

成功安装 apr 和 APR-util:

五、apr-iconv 安装

        apr-iconv 包中的文件主要用于实现 iconv 编码。目前的大部分编码转换过程都是与本地编码相关的。在进行转换之前必须能够正确地设置本地编码。因此假如两个非本地编码 A 和 B 需要转换,则转换过程大致为 A->Local 以及 Local->B 或者 B->Local 以及 Local->A。

apr-iconv 下载地址:Index of /apr (apache.org) 

[root@CentOS01 ~]# wget --no-check-certificate https://www.apache.org/dist/apr/apr-iconv-1.2.2.tar.bz2

[root@CentOS01 ~]# tar xf apr-iconv-1.2.2.tar.bz2

[root@CentOS01 ~]# cd apr-iconv-1.2.2

[root@CentOS01 apr-iconv-1.2.2]# ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr

[root@CentOS01 apr-iconv-1.2.2]# make

[root@CentOS01 apr-iconv-1.2.2]# make install

apr-iconv 安装成功:

六、Apache 安装

Apache 下载地址:Index of /httpd (apache.org)

root@CentOS01 ~]# wget --no-check-certificate https://www.apache.org/dist/httpd/httpd-2.4.53.tar.gz

[root@CentOS01 ~]# tar xf httpd-2.4.53.tar.gz

[root@CentOS01 ~]# cd httpd-2.4.53

[root@CentOS01 httpd-2.4.53]# yum -y install zlib-devel

[root@CentOS01 httpd-2.4.53]# ./configure --prefix=/usr/local/apache --enable-mpms-shared=all --with-mpm=event --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-remoteip --enable-proxy --enable-proxy-fcgi --enable-proxy-uwsgi --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-ab --disable-userdir --enable-nonportable-atomics --disable-ipv6 --with-sendfile

[root@zutuanxue httpd-2.4.53]# make

[root@zutuanxue httpd-2.4.53]# make install
--prefix=/usr/local/apache     指定安装目录
--enable-mpms-shared=all --with-mpm=event    开启动态MPM切换        
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util  指定依赖包apr apr-util安装路径
--enable-so      打开 so 模块,so 模块是用来提 dso 支持的 apache 核心模块
--enable-remoteip     支持基于客户端IP做访问控制                        
--enable-proxy --enable-proxy-fcgi --enable-proxy-uwsgi    启用代理支持PHP Python网站
--enable-deflate=shared                         开启压缩
--enable-expires=shared                         开启客户端缓存
--enable-rewrite=shared                         开启URL重写
--enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache 开启服务器缓存    
--enable-static-support                        支持静态连接
--enable-static-ab          使用静态连接编译 ab - apache http 服务器性能测试工具
--disable-userdir              禁用用户主目录提供页面访问
--enable-nonportable-atomics   对新式CPU支持,支持原子的比较交换(compare-and -swap, CAS)操作指令
--disable-ipv6               禁用IPV6
--with-sendfile              开启sendfile 0复制机制

        如果出现下面报错,极大概率是 2.4.39 的版本在页面找不到了,应该去官网找到对应的版本号即可。

        在执行 ./configure 如果出现下面安装错误,是缺少 zlib-devel 依赖包。然后使用 make clean 清除前面的安装内容、源码,再重新安装。

Apache 安装成功:

七、启动和测试 Apache

[root@CentOS01 ~]# getenforce 
#使用getenforce命令可以显示当前SELinux的应用模式,是强制、允许还是停用。
Permissive是允许
Enforcing是强制

[root@CentOS01 ~]# systemctl status firewalld
#查看防火墙状态

[root@CentOS01 ~]# systemctl disable firewalld
[root@CentOS01 ~]# systemctl stop firewalld
[root@CentOS01 ~]# systemctl status firewalld
#关闭防火墙

[root@CentOS01 ~]# setenforce 0
#setenforce命令是用来开启和关闭SELinux的 0是关闭,1是开启

也可永久关闭 selinux:

vim /etc/selinux/config

需要重启虚机生效!

 测试:提示设置“ServerName”域名,这个不影响操作,后面会提到。

[root@CentOS01 bin]# ./apachectl -t
#可以通过执行 apachectl 或者 httpd 启动 apache

 启动 Apache:

[root@CentOS01 ~]# /usr/local/apache/bin/httpd #在根目录启动
[root@CentOS01 bin]# ./apachectl
#启动Apache

[root@CentOS01 bin]# netstat -ntpl
#netstat命令来自于英文词组”network statistics“的缩写,其功能是用于显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等等。

浏览器测试结果:

 Linux 文本测试结果:

[root@CentOS01 ~]# yum -y install elinks
#安装依赖

[root@CentOS01 ~]# elinks http://192.168.9.129 -dump
#elinks命令能实现一个纯文本界面的WWW浏览器
#-dump	将HTML文档以纯文本的方式打印到标准输出设备

 Apache 安装完毕,大功告成!!!

上面提到的 ServerName 问题:

[root@CentOS01 ~]# cd /usr/local/apache/conf/

[root@CentOS01 conf]# vim httpd.conf 
#进入文本界面直接输入“/ServerName”可以全局搜索关键字

添加下面字段: 

重新启动 Apache,没有提示报错。

参考链接:部署Apache服务器-组团学

进行优化和改错!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐