CentOS 7 保姆级图文详细安装部署Apache教程

2023-11-15

目录

前言

一、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服务器-组团学

进行优化和改错!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS 7 保姆级图文详细安装部署Apache教程 的相关文章

  • 使用 terminfo 的终端颜色?

    我正在编写一个 C 类 允许在终端中使用颜色 我希望它适用于每个终端 在支持真彩色 24 位 的终端上打印 在支持它的终端上具有 256 色 6x6x6 其他都是基本的 16 种颜色 我曾经使用 termcap 编写过一次 C 函数 并且我
  • 项目链接在 Wamp 服务器上不起作用

    我正在另一台计算机上安装 Wamp 服务器来运行中型数据库和 UI 我已成功阻止 IIS 并将服务器路由到 Localhost 8080 但是每当我尝试从 localhost 主页访问我的项目时 在 www 文件中 我被重定向到页面未找到错
  • Apache mod_rewrite 将子域重写到子文件夹(通过内部重定向)

    我正在尝试编写一组 mod rewrite 规则 允许我的用户利用单个文件夹在不同项目上进行开发 而不必为每个项目添加虚拟主机 我的想法是为每个需要此功能的用户 仅 3 4 个 设置一个 全局虚拟主机 该虚拟主机类似于 my domain
  • mod_rewrite代理超时

    我有 apache 设置来代理对后端应用程序服务器的请求 有多个后端服务器 并且有一个大的 rewrite rules 文件 针对每个请求进行处理 以正确地将所有请求代理到应用程序服务器 一台特定的应用程序服务器有时需要很长时间才能响应 如
  • VSCODE 在 Linux 上不适用于我

    刚刚了解 VSCODE 很高兴尝试一下 我下载 解压并运行可执行文件 我得到 Code 2183 0429 201254 ERROR browser main loop cc 170 Running without the SUID san
  • 如何清理 Runtime.exec() 中使用的用户输入?

    我需要通过命令行调用自定义脚本 这些脚本需要很少的参数并在 Linux 机器上调用 当前版本容易出现各种shell注入 如何清理用户给出的参数 参数包括登录名和路径 Unix 或 Windows 路径 用户应该能够输入任何可能的路径 该路径
  • Tomcat 7 - 在哪里设置“系统属性”?

    自从升级到 Tomcat 7 以来 我的 Web 应用程序出现了问题 我的会话将继续null在我登录并尝试执行任何操作 提交请求 后 我读到设置以下内容可能会有所帮助 org apache tomcat util http ServerCo
  • _dl_runtime_resolve -- 共享对象何时加载到内存中?

    我们有一个对性能要求很高的消息处理系统 最近我们注意到第一条消息比后续消息花费的时间要长很多倍 当它通过我们的系统时 会发生大量转换和消息增强 其中大部分是通过外部库完成的 我刚刚描述了这个问题 使用 callgrind 将仅一条消息的 运
  • 在哪里可以找到所有 C 标准库的源代码?

    我正在寻找所有 C 标准库的完整源代码 也就是说 我正在寻找 stdio h stdlib h string h math h 等的源代码 我想看看它们是如何创建的 我认为这取决于不同的平台 但 Linux 或 Windows 都会受到欢迎
  • 动态加载库和共享全局符号

    由于我在动态加载的库中观察到全局变量的一些奇怪行为 因此我编写了以下测试 首先我们需要一个静态链接库 头文件test hpp ifndef BASE HPP define BASE HPP include
  • 如何修复 /usr/bin/env 参数处理?

    我遇到了一个奇怪的问题 usr bin env 我设计了一个简单的脚本来显示问题 该脚本使用 Ruby 编写 但使用 Python 编写的类似脚本也会发生同样的情况 这是脚本 usr bin env ruby p ARGV 还有一个没有 u
  • 如何在树莓派上更新到最新的 python 3.5.1 版本?

    我昨天拿到了 Raspberry Pi 我已经在尝试用它来编写代码了 我有一个计划在其上运行的程序 但它仅与 Python 版本 3 5 0 或 3 5 1 兼容 并且我在互联网上找到的所有内容似乎都已经过时 与 Python 2 有关 或
  • 选择多个模式的 awk 代码

    这是我的输入文件 比如modified txt r4544 n479826 2012 08 28 07 12 33 0400 Tue 28 Aug 2012 1 line Changed paths M branches 8 6 0 con
  • /usr/bin/as:无法识别的选项“-EL”

    因此 在为我的1plus手机编译android内核时 经过3天的多次尝试 我放弃了并尝试在这里询问是否有人以前遇到过这个问题 这个错误对我来说有点模糊 但我觉得问题来自于我最近对 GNU Linux 发行版 Gentoo 的更改 它在不应该
  • 升级到 Yosemite 后 Apache 配置损坏

    昨天我升级到 Yosemite 现在我的 Web 开发本地配置不再起作用 我设法在下面设置了一个 userdir Users user public html我可以通过以下方式访问所有网站localhost user websitename
  • .htaccess 重写规则冲突

    我正在编写代码并构建一个 htaccess 文件 其中包含以下内容 RewriteEngine on RewriteRule A Za z0 9 A Za z0 9 index php id 1 NC L Handle page reque
  • C/C++ with GCC:静态地将资源文件添加到可执行文件/库

    有人知道如何使用 GCC 将任何资源文件静态编译为可执行文件或共享库文件吗 例如 我想添加永远不会改变的图像文件 如果它们改变了 我无论如何都必须替换该文件 并且不希望它们位于文件系统中 如果这是可能的 我认为这是因为 Visual C f
  • BlueZ D-Bus C,应用 BLE

    我正在尝试编写一个应用程序来搜索附近的蓝牙设备并与它们通信 我的应用程序将用 C 语言编写 并打算在 Linux 下工作 是否有通过 C 中的 D Bus 使用 BlueZ 的教程或示例 此应用程序的目的是从 BLE 中的文件发送数据 你能
  • 检查 Linux 中给定进程的打开 FD 限制

    我最近有一个 Linux 进程 泄露 了文件描述符 它打开了文件描述符 但没有正确关闭其中一些文件描述符 如果我对此进行监控 我就可以提前得知该过程已达到其极限 有没有一种很好的 Bash 或 Python 方法来检查 Ubuntu Lin
  • Python 线程与 Linux 中的多处理

    基于此question https stackoverflow com questions 807506 threads vs processes in linux我假设创建新流程应该几乎和创造新线程在Linux中 然而 很少的测试显示出截

随机推荐