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,或使用刚创建的服务启动。
相关推荐
AI慧聚堂13 分钟前
自动化 + 人工智能:投标行业的未来是什么样的?
运维·人工智能·自动化
不爱学英文的码字机器15 分钟前
[Linux] Shell 命令及运行原理
linux·运维·服务器
cdut_suye27 分钟前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
qq_4336184431 分钟前
shell 编程(三)
linux·运维·服务器
苹果醋339 分钟前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
两张不够花41 分钟前
Jenkins 持续集成部署
运维·jenkins
Tlzns1 小时前
Linux网络——UDP的运用
linux·网络·udp
码农土豆1 小时前
PaddlePaddle飞桨Linux系统Docker版安装
linux·docker·paddlepaddle
Hacker_xingchen1 小时前
天融信Linux系统安全问题
linux·运维·系统安全
丘狸尾1 小时前
[cisco 模拟器] ftp服务器配置
android·运维·服务器