Linux[高级管理]——使用源码包编译安装Apache网站

🏡作者主页:点击! 

👨‍💻Linux高级管理专栏:点击!

⏰️创作时间:2024年5月31日14点20分

🀄️文章质量:96分


Linux系统上编译和安装Apache HTTP Server是管理员和开发人员常用的一项技能。这种方法提供了更大的灵活性和控制权,允许你根据特定需求自定义配置和模块。通过从源代码编译安装Apache,可以确保使用最新的功能和修复,同时优化服务器性能和安全性。本文将详细介绍如何从源码包下载、解压、配置、编译和安装Apache HTTP Server,并进行基本配置以启动和运行一个Apache网站。

目录

💯趣站💯

↘️1.下载安装所需的包

🔙上传/解压安装包

↕️2.编译安装软件

↔️查看httpd版本号

↖️启动服务

↗️编辑配置文件

↙️查看端口

↙️主机名映射

↙️测试


完成效果

↘️1.下载安装所需的包

缺失安装包之后 会导致后续安装出错

yum install -y gcc gcc-c++ make apr apr-devel apr-util-devel pcre pcre-devel

各个软件包的作用

  1. gcc:GNU Compiler Collection的C编译器。用于编译C语言程序。

  2. gcc-c++:GNU Compiler Collection的C++编译器。用于编译C++语言程序。

  3. make:一个构建工具,用于自动化编译软件程序的过程,主要根据Makefile文件的指令进行编译。

  4. apr:Apache Portable Runtime库,提供了一组跨平台的编程接口,用于实现高性能的服务器应用程序。

  5. apr-devel:APR库的开发文件,包括头文件和静态库,供编写使用APR库的程序时使用。

  6. apr-util-devel:APR Utility库的开发文件,提供了一些APR库的辅助功能和扩展功能。

  7. pcre:Perl Compatible Regular Expressions库,提供了一套与Perl语言兼容的正则表达式功能。

  8. pcre-devel:PCRE库的开发文件,包含头文件和静态库,供编写使用PCRE库的程序时使用。

下载vim和上传工具(你的电脑可能已经安装,再敲一编也没事)

🔙上传/解压安装包

上传文件(Apache的安装包)

  1. zxftar命令的选项:

    • z:使用gzip解压缩。
    • x:提取文件。
    • f:指定要处理的文件名(在这里是httpd-2.4.59.tar.gz)。
  2. httpd-2.4.59.tar.gz:要解压的tar.gz文件名。

  3. -C /usr/src/:指定解压缩的目标目录(/usr/src/)。-C选项告诉tar将文件解压到指定目录,而不是当前目录。

↕️2.编译安装软件

进入你解压后的目录 也就是/usr/src/httpd....        可以TAB出来

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enablecharset-lite --enable-cgi && make && make install

命令解释

  • ./configure:这是一个配置脚本,用于检查系统环境并设置编译选项。它生成一个适合系统的Makefile文件。

    • --prefix=/usr/local/httpd:指定安装路径。这里表示将软件安装到/usr/local/httpd目录下。

    • --enable-so:启用DSO(动态共享对象)支持,允许使用动态加载的模块。

    • --enable-rewrite:启用URL重写模块(mod_rewrite),用于重写请求的URL。

    • --enable-charset-lite:启用轻量级字符集转换支持。

    • --enable-cgi:启用CGI(Common Gateway Interface)支持,允许运行CGI脚本。

  • &&:逻辑AND操作符,确保前一条命令成功执行后才执行下一条命令。

  • make:根据configure生成的Makefile文件,编译源代码生成可执行文件和库。

  • make install:将编译生成的文件安装到指定的目录(--prefix指定的路径)。

编译安装完成之后查看

[root@localhost httpd-2.4.59]# ls /usr/local/httpd/
bin cgi-bin error icons logs manual
build conf htdocs include man modules

创建软连接

ln /usr/local/httpd/bin/* /usr/local/bin/

这条命令用于创建符号链接,将/usr/local/httpd/bin目录下的所有文件链接到/usr/local/bin目录中。这样可以方便地从命令行调用这些可执行文件,而不必输入完整路径。

好处

  • 方便使用:现在可以直接运行apachectlhttpd等命令,而不需要指定完整路径

↔️查看httpd版本号
root@localhost ~]# httpd -v
Server version: Apache/2.4.59 (Unix)
Server built: May 31 2024 11:42:35

 cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

/usr/local/httpd/bin/apachectl复制到/etc/init.d/目录并命名为httpd,是一种将Apache HTTP Server配置为系统服务的方式。这可以让你使用标准的服务管理命令来启动、停止和管理Apache HTTP Server。

↖️启动服务
[root@localhost ~] service httpd start
↗️编辑配置文件
[root@localhost ~] vim /usr/local/httpd/conf/httpd.conf

开启ServerName

[root@localhost ~] service httpd restart

↙️查看端口
[root@localhost ~] netstat -nultp | grep 80
tcp6 0 0 :::80 :::* LISTEN
19699/httpd

编辑网页文件(这里我随意写了个htmll测试使用)

[root@localhost ~] cd /usr/local/httpd/htdocs/
[root@localhost htdocs] ls
index.html
[root@localhost htdocs] vim index.html
[root@localhost htdocs] systemctl stop firewalld

↙️主机名映射
​[root@localhost ~] vim /etc/hosts

将你的IP地址和你的主机名关联起来

↙️测试

打开浏览器访问主机名或者IP地址都是可以的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四)

上一篇:搭建基于Django的博客系统增加广告轮播图(三) 下一篇:基于Django的博客系统之用HayStack连接elasticsearch增加搜索功能(五) Sqlite3数据库迁移到MySQL 数据库 迁移原因 Django 的内置数据库 SQL…

动态规划求多段图的最短路径

一、基本思想 动态规划法将待求解问题分解成若干个相互重叠的子问题,每个子问题相互关联;动态规划法与分治法的区别就在于分治法的子问题相互不关联,而动态规划法的子问题是相互关联的,且有重叠的部分。 二、算法分析 动态规划…

性能优化相关:nginx负载均衡中的动静分离

结合上次博客:正向代理和反向代理 什么是动静分离: 静态资源:包含css文件、图片、js文件、配置文件等 动态资源:脚本处理等 更改/usr/local/nginx/conf下的nginx.conf文件,设置动静目录,添加如下 locatio…

Ubuntu——配置安装服务

目录 一、安装JDK 二、安装IntelliJ IDEA 三、安装Docker-ce 1.环境清理以免有遗留组件 2.安装Docker 3.测试 #检查版本 sudo cat /etc/issue 一、安装JDK Ubuntu提供了一个名为apt的软件包管理工具,通过它可以使用命令行的方式安装、更新和删除软件包。 使用…

Day03 左侧菜单数据绑定

一.左侧菜单数据绑定 1.首先,进行项目结构塔建。按照Prism 框架约定,要使用自动查找绑定功能。即View (视图)中自动查找并绑定到对应的ViewModel(视图模型,处理视图业务逻辑)。就需要在项目中按…

大数据在金融行业的深度应用与未来展望

一、引言 随着信息技术的迅猛发展,大数据已经成为推动金融行业创新的重要力量。从精准营销、个性化服务到风险管理和产品创新,大数据的应用正在不断重塑金融行业的格局。本文将深入探讨大数据在金融行业的深度应用,分析其特征特点、解决方案以及面临的挑战与机遇,并展望其…

LeetCode刷题之HOT100之搜索旋转排序数组

2024/6/2 雨一直下,一个上午都在床上趴着看完了《百年孤独》,撑伞去吃了个饭,又回到了宿舍。打开许久未开的老电脑,准备做题了。《百年孤独》讲了什么,想表达什么,想给读者留下什么,我不知道&am…

无法拒绝!GPT-4o 完美适配安卓手机,畅享丝滑体验

无法拒绝!GPT-4o 完美适配安卓手机,畅享丝滑体验 前言 人工智能的飞速发展,给我们的生活带来了前所未有的便利。作为AI技术的代表之一,GPT凭借其强大的自然语言处理能力,已经成为许多用户日常生活和工作中的得力助手…

超大功率光伏并网逆变器学习(三相) 一

1.超大功率用的IGBT开关频率通常很低,比如6KHz 2.线电压和相电压的关系 相电压 A AB线电压-CA线电压 相电压 B BC线电压-AB线电压 相电压 C CA线电压-BC线电压 3.坐标变换 ABC三相信号通过Clark坐标变换得到αβ两相静止信号,其中α与A相重合,β与α…

基于数据驱动的自适应性小波构造(MATLAB)

以地震领域为例,时频变换能够刻画地震资料的时频特征,进而辅助地质构造解释。在各种时频分析工具中,连续小波变换CWT是描述地震资料时频特征的常用工具。选择合适的基小波是CWT的关键问题。对于不同类型的信号前人有针对性的设计了许多基小波…

TCP/IP(网络编程)

一、网络每一层的作用 *网络接口层和物理层的作用:屏蔽硬件的差异,通过底层的驱动,会提供统一的接口,供网络层使用 *网络层的作用:实现端到端的传输 *传输层:数据应该交给哪一个任…

移植2D物理引擎到LVGL

背景 在LVGL交流群,有网友提出想要移植物理引擎到LVGL,遂有了本文。阅读本文需要对IDF和LVGL有所了解 过程 2D物理引擎有很多,经过一番调研选择了Chipmunk2D 下载源码 此处省略一万字,Github访问可能会有些慢 添加文件 将…

前端3剑客(第1篇)-初识HTML

100编程书屋_孔夫子旧书网 当今主流的技术中,可以分为前端和后端两个门类。 前端:简单的理解就是和用户打交道 后端:主要用于组织数据 而前端就Web开发方向来说, 分为三门语言, HTML、CSS、JavaScript 语言作用HT…

【Mysql语句优化---Explain使用以及相关属性含义】

Explain使用以及相关属性含义 一.explain中的列 接下来我们将展示 explain 中每个列的信息。 1. id列 id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。 id列越大执行优先级越高,id相…

罗德里格斯旋转公式证明-简洁

罗德里格斯旋转公式证明。 设旋转向量为 ( n , θ ) (n, \theta) (n,θ),设其对应的旋转矩阵为 R R R, 如何证明? R c o s θ I n ∧ s i n θ ( 1 − c o s θ ) n n T Rcos\theta I n^{\wedge}sin\theta(1-cos\theta)nn^{T} RcosθI…

RDD与Java实战:学生列表,先按性别降序,再按年龄降序排列

文章目录 Scala RDD 实现Java 实现实战总结 在本实战任务中,我们的目标是对学生列表进行排序,排序规则是先按性别降序排列,再按年龄降序排列。我们提供了两种实现方式:使用Scala的RDD(弹性分布式数据集)和…

Python 二叉数的实例化及遍历

首先创建一个这样的二叉树,作为我们今天的实例。实例代码在下方。 #创建1个树类型 class TreeNode:def __init__(self,val,leftNone,rightNone):self.valvalself.leftleftself.rightright #实例化类 node1TreeNode(5) node2TreeNode(6) node3TreeNode(7) node4Tre…

Mybatis项目创建 + 规范

文章目录 一、相关概念Mybatis1.1 什么是Mybatis1.1 如何实现简化JDBC 二、如何创建 Mybatis 项目2.1 创建SpringBoot项目 加载依赖2.2 准备数据库 以及 对象的映射2.3 配置数据库连接池2.4 使用Mybatis操作数据库2.5 单元测试 三、其他3.1 数据库与Java对象的映射规则 ---- 结…

为什么GD32F303代码运行在flash比sram更快?

我们知道一般MCU的flash有等待周期,随主频提升需要插入flash读取的等待周期,以stm32f103为例,主频在72M时需要插入2个等待周期,故而代码效率无法达到最大时钟频率。 所以STM32F103将代码加载到sram运行速度更快。 但使用GD32F30…

复习kafka

Kafka 介绍 Kafka 是一种分布式的,基于发布/订阅的消息系统。它最初由 LinkedIn 开发,并于 2011 年开源。Kafka 的设计目标是提供一种高效、可靠的消息传输机制,能够处理大量的实时数据。 Kafka 基本概念 Producer:生产者&#xf…