RHEL7及之后系统 系统服务脚本(Rocky 9.4)

目录

源码安装

准备工作

步骤1: 下载软件

步骤2: 安装apr

步骤3: 安装apr-util

步骤4: 安装Apache HTTP Server

总结步骤

后续步骤


源码安装

  1. 准备环境:首先,确保你的系统中安装了必要的编译工具和依赖库。对于C/C++程序,这通常包括编译器(如GCC或Clang)、链接器以及相关的开发库。对于其他语言,可能还需要特定的编译器或构建工具(如Python的pip,Java的JDK)。

  2. 下载源代码:从项目官网、GitHub或其他代码托管平台下载源代码包,通常为压缩文件(如.tar.gz, .zip)。

  3. 解压源代码:使用命令行工具(如tar -xvf或解压软件)解压下载的源代码包到指定目录。

  4. 配置:许多开源项目在编译前需要配置步骤,通过执行./configure脚本(常见于GNU Autotools项目)或其他配置工具(如CMakefile、CMake、Maven、Gradle等)。配置过程会检测系统环境、设置编译选项、指定安装路径等。

  5. 编译:执行编译命令,将源代码转换为机器代码。对于C/C++,这通常使用make命令(基于Makefile);对于其他语言,可能是mvn compilegradle build等。编译过程可能包括预处理、编译、汇编、链接等多个阶段。

  6. 安装:编译完成后,通过make install(需要管理员权限)将编译得到的可执行文件、库文件、配置文件等安装到系统路径(如/usr/local/bin, /usr/local/lib)。

  7. 测试:安装后,运行软件或执行测试脚本(如make test),确保软件能正确工作。

准备工作

确保系统中已安装必要的构建工具和库(由于源码安装是c/c++写的,所以需要安装相关文件)

yum install gcc gcc-c++ make -y

步骤1: 下载软件

首先,下载Apache及其依赖的源代码包。请注意,您提供的版本号(如httpd-2.4.50)可能需要校正为实际有效的版本号。可以通过访问Apache官方网站获取最新的稳定版本号。以下为示例命令,您应根据实际下载的版本调整文件名:

wget https://archive.apache.org/dist/httpd/httpd-2.4.50.tar.gz
tar -xvf httpd-2.4.50.tar.gz -C /usr/local/src/  --解压文件

解压文件成功之后

cd /usr/local/src/httpd-2.4.50/
[root@localhost httpd-2.4.50] ls

  • ABOUT_APACHE: 可能包含有关Apache项目的简短介绍或版权信息。
  • CHANGES: 记录了版本间的变更日志,包括新特性、修复的漏洞等。
  • httpd.makhttpd.dephttpd.dsp: 这些是编译相关的文件,用于构建httpd服务本身。
  • Makefile.in: 配置生成Makefile的模板文件,通常在执行./configure时被处理。
  • ROADMAP: 可能包含了项目的发展路线图或未来规划。
  • acinclude.m4, configure, configure.in: 自动配置脚本和宏定义文件,用于检测系统环境并准备编译环境。
  • changes-entries: 可能用于记录文档中的更改条目。
  • CMakeLists.txt: 如果使用CMake构建系统,这是CMake的主配置文件。
  • docs: 存放文档的目录。
  • include: 包含头文件,供Apache及其模块使用。
  • INSTALL: 通用的安装指南。
  • LAYOUT: 可能描述了源代码布局的文件。
  • LICENSE: 许可证文件,包含Apache HTTP Server的授权信息。
  • modules: 包含Apache的核心模块源代码。
  • NOTICE: 可能包含版权和许可声明。
  • NWGNUmakefile: 可能是为特定构建系统提供的Makefile。
  • READMEREADME.CHANGESREADME.cmakeREADME.platforms: 提供各种说明和帮助文档。
  • server: 可能包含服务器核心的源代码。
  • srclib: 存放共享库或源代码库的源文件。
  • support: 支持脚本或工具。
  • test: 测试用例和相关脚本。
  • VERSIONING: 可能涉及版本控制或版本管理的信息。

显示没找到ARP,有一个软件依赖

打开apache官网查看源码编译手册

下载apr与apr-util

​wget https://dlcdn.apache.org//apr/apr-1.7.4.tar.gz
wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz

步骤2: 安装apr

tar xf apr-1.7.4.tar.gz -C /usr/local/src
cd /usr/local/src/apr-1.7.4
./configure --prefix=/usr/local/apr
make 
make install

步骤3: 安装apr-util

这里的 --with-apr 选项告诉 httpdconfigure 脚本去使用指定路径下的 apr 库。如果没有提供路径,configure 脚本会尝试找到系统中默认位置的 apr 库。

对于 apr-util:

tar xf apr-util-1.6.3.tar.gz -C /usr/local/src
cd /usr/local/src/apr-util-1.6.3

同样,如果需要指定一个特定版本的 apr-util,可能因为它包含了某些特定的功能或者与 apr 版本相匹配,可以使用类似的选项:

  • --prefix=/usr/local/apr-util:此选项指定了 apr-util 库安装的目录。意味着编译完成后,apr-util 的库文件、头文件等将被安装到 /usr/local/apr-util 目录下,便于系统其他软件找到和使用。

  • --with-apr=/usr/local/apr/:这个选项指明了 apr 库的安装位置。apr-utilapr 库的扩展,因此在编译 apr-util 时需要知道 apr 的安装路径,确保编译过程中能够找到并正确链接到 apr 库。这里的路径以斜杠结尾是一种习惯做法,虽然大多数 configure 脚本对此并不严格要求,但建议保持一致以避免潜在的路径解析问题。

注意,由于 apr-util 依赖于 apr,所以通常需要同时指定两者的位置,尤其是当你使用自定义安装路径时。如果不指定 --with-aprconfigure 可能无法找到正确的 apr 版本来与 apr-util 配合。

显示有错误这里没有找到apr,由于apr-util 是apr的扩展,所以需将他们两个连接起来

这里得使用选项--with

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make

这个时候发现了一个错误缺少一个库头文件

yum install -y expat-devel # 确保expat库已安装
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make 
make install

扩展包安装成功!

步骤4: 安装Apache HTTP Server

流程:

tar xf httpd-2.4.x.tar.gz -C /usr/local/src # 替换x为实际的小版本号
cd /usr/local/src/httpd-2.4.50
yum install -y pcre-devel # 安装PCRE库,用于正则表达式支持
./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-ssl --with-pcre=/usr/local # 启用SSL支持,并指定PCRE路径
make 
make install

遇到这个错误信息意味着在编译某个软件(是Apache HTTP Server、Nginx或其他依赖PCRE库的软件)时,系统找不到pcre-config工具,这是PCRE库(Perl Compatible Regular Expressions,Perl兼容正则表达式库)的一部分。PCRE库用于提供强大的正则表达式支持,是很多网络服务和应用程序的基础依赖。

验证是否安装成功

[root@localhost httpd-2.4.50] pcre-config --version
8.44
  • --prefix=/usr/local/httpd:此选项指定了 httpd 服务器安装的基准目录。编译安装完成后,httpd 的可执行文件、配置文件、库文件等将被放置在 /usr/local/httpd 及其子目录下,例如,二进制文件通常位于 /usr/local/httpd/bin,配置文件可能在 /usr/local/httpd/conf

  • --with-apr=/usr/local/apr:此选项告诉配置脚本使用位于 /usr/local/apr 目录下的 APR(Apache Portable Runtime)库。APR 是一组跨平台的库,提供了操作系统层面上的抽象,使得Apache HTTP Server和其他软件能够更方便地实现平台无关性。指定这个路径确保了httpd将使用自定义位置的APR库而非系统自带的版本。

  • --with-apr-util=/usr/local/apr-util:类似地,这个选项指定了 APR-Util 库的安装位置为 /usr/local/apr-util。APR-Util 是 APR 的扩展,提供了更多的实用功能,如数据库连接、XML处理等。确保httpd使用特定版本或自定义安装的APR-Util库对于依赖管理和功能兼容性很重要。

重新编译

[root@localhost httpd-2.4.50] ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

make
make install

安装成功

总结步骤

源码编译安装apache 2.4
yum install gcc gcc-c++ make -y 
1、下载软件apr-1.7.4.tar.gzapr-util-1.6.3.tar.gzhttpd-2.4.50.tar.gz
2、安装apr  APACHE的可移植运行库 tar xf apr-1.7.4.tar.gz -C /usr/local/srccd /usr/local/src/apr-1.7.4/./configure --prefix=/usr/local/aprmakemake install
3、安装apr-util 与APACHE更加紧密 包含一些常用的开发组件tar xf apr-util-1.6.3.tar.gz -C /usr/local/srccd /usr/local/src/apr-util-1.6.3yum install -y expat-devel # 安装依赖./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/makemake install
4、安装apache tar xf httpd-2.4.50.tar.gz -C /usr/local/srccd /usr/local/src/httpd-2.4.50/yum install pcre-devel # 安装依赖./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util make make install

后续步骤

  • 配置Apache:编辑Apache的配置文件(通常是/usr/local/httpd/conf/httpd.conf),根据需要调整服务器根目录、监听端口等。
  • 创建系统服务:为Apache创建Systemd或Init服务脚本,以便于管理和自动启动。
  • 启动Apache:通过/usr/local/httpd/bin/apachectl start手动启动Apache,或使用刚创建的服务启动。

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

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

相关文章

一阶数字高通滤波器

本文的主要内容包含一阶高通滤波器公式的推导和数字算法的实现以及编程和仿真 1 计算公式推导 1.1.2 算法实现及仿真 利用python实现的代码如下: import numpy as np # from scipy.signal import butter, lfilter, freqz import matplotlib.pyplot as plt #2pifW…

从原理上解决 uniapp (含第三方插件)打包 iOS APP 失败的问题

最近一段时间,我的团队基于uniapp开发的平台型APP因平台资金合规的要求,需要对接中金支付,uniapp的插件市场有一个别人做好的中金支付插件,但前端开发同事在引用这个 插件时,出现了 iOS APP 打包不成功的情况&#xff…

Pantera 合伙人简谈 Morpho:更高效、适应性更强的 DeFi 解决方案

原文标题:《Pioneering Peer-to-Peer Lending in the DeFi Revolution》撰文:Pantera Capital 合伙人 Paul Veradittakit编译:Chris,Techub News 文章来源:香港Web3媒体Techub News Morpho 正在超越 Compound 等传统…

Redis主从、哨兵、cluster集群的部署和细节

目录 1. 主从模式 为什么需要主从? 搭建主从架构 2. Sentinel(哨兵)模式 为什么需要哨兵模式? 搭建哨兵集群 哨兵集群 Go语言编程redis哨兵模式 有了哨兵,客户端连接谁? test1:redis节点主从切换 test2&am…

webgl入门-矩阵变换

矩阵变换 前言 变换有三种状态:平移、旋转、缩放。 当我们变换一个图形时,实际上就是在移动这个图形的所有顶点。 课堂目标 掌握图形变换的三种方式。可以对图像进行复合变换。 知识点 平移旋转缩放 第一章 平移 对图形的平移就是对图形所有顶点…

如何快速从手动测试转向自动化测试

寻求具有无缝持续集成和持续交付 (CI/CD) 的高效 DevOps 管道比以往任何时候都更加重要。想象一下这样一个场景:您的软件组织显著减少了人工工作量、降低了成本,并更加自信地发布了软件更新。换句话说,通过将 Web UI 和 API 测试结合在一起&a…

【小白课程】如何在openKylin上个性化定制开关机动画

开关机动画是Linux系统的重要组成部分,其主要功能是在Linux内核启动的早期遮盖内核打印日志,并在内核刷新屏幕分辨率时保证屏幕显示的流畅性。 其中,openKylin操作系统使用plymouth组件作为开关机动画显示程序。Linux系统在启动时&#xff0…

计算机SCI期刊,中科院2区,收稿范围非常广泛!

一、期刊名称 Journal of Web Semantics 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:2.5 中科院分区:2区 出版方式:开放出版 版面费:$1600 三、期刊征稿范围 《网络语义学杂志》…

【软件测试】5.测试用例

目录 1.测试用例 1.1概念 1.2测试的要素 2.测试用例的万能公式 2.1常规思考逆向思维发散性思维 2.2万能公式 2.2.1功能测试 2.2.2界面测试 2.2.3性能测试 2.2.4兼容性测试 2.2.5易用性测试 2.2.6安全测试 2.3弱网测试 1.测试用例 1.1概念 什么是测试用例&#xf…

Jenkins 构建 Web 项目:构建服务器和部署服务器分离的情况

构建命令 #!/bin/bash node -v pnpm -v pnpm install pnpm build:prod # 将dist打包成dist.zip zip -r dist.zip dist

软件项目运维方案-word原件2024

1. 文档介绍 1.1 文档目的 1.2 文档范围 1.3 读者对象 1.4 参考文献 1.5 术语与缩写解释 2. 人员与责任 2.1 项目建设管理机构 2.2 驻场人员工作时间 2.3 人员培训 2.3.1. 培训需求管理 2.3.2. 培训内容管理 2.4 绩效考核 3. 运维过程内容 3.1. 运维模型 3.2. P…

LangChain - 概念指南

文章目录 一、Architecture1、langchain-core2、partner-packages3、langchain4、langchain-community5、langgraph6、langserve7、langsmith 二、浪链表达语言(LCEL )可运行界面 runnable-interface 三、组件 components1、聊天模型 chat-models2、 LLM…

工程机械租赁平台数字化平台系统油耗与排放管理创新与应用

在快速发展的城市建设和基础设施项目中,工程机械扮演着举足轻重的角色。随着工程规模的扩大和施工技术的不断进步,工程机械租赁平台应运而生,为建设项目提供了灵活高效的解决方案。然而,随着租赁机械数量的增加,如何有…

【GO基础】GO基础语法一

GO基础语法一 一、编写第一个Go程序1、基本程序结构2、应用程序入口3、退出返回值4、获取命令行参数 二、变量,常量以及与其他语言的差异1、编写测试程序2、实现Fibonacci数列3、变量赋值4、常量定义 三、数据类型1、类型转化2、类型的预定义值3、指针类型 四、运算…

微信小程序仿胖东来轮播和背景效果(有效果图)

效果图 .wxml <view class"swiper-index" style"--width--:{{windowWidth}}px;"><image src"{{swiperList[(cardCur bgIndex -1?swiperList.length - 1:cardCur bgIndex > swiperList.length -1?0:cardCur bgIndex)]}}" clas…

【四数之和】python,排序+双指针

四层循环&#xff1f;&#xff08;doge) 和【三数之和】题目很类似 class Solution:def fourSum(self, nums: List[int], target: int) -> List[List[int]]:nums.sort()#a,b,c,d四个数&#xff0c;先固定两个数&#xff0c;那就是双指针问题了&#xff0c;令ba1&#xff…

关于搜索引擎链路

一、搜索引擎的的链路 简单流程如下&#xff0c;一般都包括query理解&#xff0c;召回&#xff0c;粗排&#xff0c;精排&#xff0c;重排。 二、query理解&#xff0c;查询词处理 对于进来的query需要有很多道工序做处理。才能让搜索引擎的效果更好、更智能。 2.1 分词 分词…

Ubuntu18.04 OpenSSH升级

升级前版本&#xff1a; rootecs-m2eqyb:/opt# ll total 20912 drwxr-xr-x 2 root root 4096 May 10 16:23 ./ drwxr-xr-x 24 root root 4096 May 10 14:38 ../ -rw-r--r-- 1 root root 1848766 May 10 16:23 openssh-9.7p1.tar.gz -rw-r--r-- 1 root root 18038…

离散数学--图论

目录 1.简单概念 2.握手定理 3.点割集 4.边割集 5.点连通度和边连通度 6.Dijstra算法&&最短路径 7.有向图的连通性 8.图的矩阵表示 9.欧拉图问题 10.哈密尔顿图 1.简单概念 &#xff08;1&#xff09;这个里面的完全图比较重要&#xff0c;完全图是例如k3,k5这…

JMETER工具:以录制手机app为例

JMETER工具&#xff1a;以录制手机app为例子 JMETER安装和环境配置 pc需要安装jdk&#xff0c;并进行jdk的环境配置&#xff0c;安装好jdk并配置好后&#xff0c;通过命令行输入java –version出现以下界面就表示安装成功&#xff1a; &#xff08;对应的jdk版本不可太低&…