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

目录

源码安装

准备工作

[步骤1: 下载软件](#步骤1: 下载软件)

[步骤2: 安装apr](#步骤2: 安装apr)

[步骤3: 安装apr-util](#步骤3: 安装apr-util)

[步骤4: 安装Apache HTTP Server](#步骤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官方网站获取最新的稳定版本号。以下为示例命令,您应根据实际下载的版本调整文件名:

bash 复制代码
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/  --解压文件

解压文件成功之后

bash 复制代码
cd /usr/local/src/httpd-2.4.50/
[root@localhost httpd-2.4.50] ls
  • ABOUT_APACHE: 可能包含有关Apache项目的简短介绍或版权信息。
  • CHANGES: 记录了版本间的变更日志,包括新特性、修复的漏洞等。
  • httpd.mak , httpd.dep , httpd.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。
  • README , README.CHANGES , README.cmake , README.platforms: 提供各种说明和帮助文档。
  • server: 可能包含服务器核心的源代码。
  • srclib: 存放共享库或源代码库的源文件。
  • support: 支持脚本或工具。
  • test: 测试用例和相关脚本。
  • VERSIONING: 可能涉及版本控制或版本管理的信息。

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

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

下载apr与apr-util

bash 复制代码
​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

bash 复制代码
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:

bash 复制代码
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

bash 复制代码
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
bash 复制代码
make

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

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

扩展包安装成功!

步骤4: 安装Apache HTTP Server

流程:

bash 复制代码
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库用于提供强大的正则表达式支持,是很多网络服务和应用程序的基础依赖。

验证是否安装成功

bash 复制代码
[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库对于依赖管理和功能兼容性很重要。

重新编译

bash 复制代码
[root@localhost httpd-2.4.50] ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

bash 复制代码
make
make install

安装成功

总结步骤

bash 复制代码
源码编译安装apache 2.4
yum install gcc gcc-c++ make -y 
1、下载软件
	apr-1.7.4.tar.gz
	apr-util-1.6.3.tar.gz
	httpd-2.4.50.tar.gz
2、安装apr  APACHE的可移植运行库 
	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 与APACHE更加紧密 包含一些常用的开发组件
	tar xf apr-util-1.6.3.tar.gz -C /usr/local/src
	cd /usr/local/src/apr-util-1.6.3
	yum install -y expat-devel # 安装依赖
	./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
	make
	make install
4、安装apache 
	tar xf httpd-2.4.50.tar.gz -C /usr/local/src
	cd /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,或使用刚创建的服务启动。
相关推荐
苹果醋314 分钟前
大模型实战--FastChat一行代码实现部署和各个组件详解
java·运维·spring boot·mysql·nginx
梁诚斌1 小时前
VSOMEIP代码阅读整理(1) - 网卡状态监听
运维·服务器·网络
深情废杨杨1 小时前
服务器几核几G几M是什么意思?如何选择?
运维·服务器
康熙38bdc1 小时前
Linux 进程优先级
linux·运维·服务器
Web极客码1 小时前
常见的VPS或者独立服务器的控制面板推荐
运维·服务器·控制面板
hhzz1 小时前
Linux Shell编程快速入门以及案例(Linux一键批量启动、停止、重启Jar包Shell脚本)
android·linux·jar
只是有点小怂1 小时前
parted是 Linux 系统中用于管理磁盘分区的命令行工具
linux·运维·服务器
三枪一个麻辣烫2 小时前
linux基础命令
linux·运维·服务器
cuisidong19972 小时前
如何在 Kali Linux 上安装 Google Chrome 浏览器
linux·运维·chrome
光通信学徒3 小时前
ubuntu图形界面右上角网络图标找回解决办法
linux·服务器·ubuntu·信息与通信·模块测试