源码编译安装httpd 2.4,提供系统服务管理脚本并测试
总结需要安装的包
sudo yum groupinstall "Development Tools" -y #httpd的依赖包yum install tar -y #tar压缩包sudo yum install apr-devel apr-util-devel #APR库 提供跨平台接口的库sudo yum install pcre pcre-devel # PCRE库和 pcre-config工具--提供PCRE库的编译和链接信息
sudo yum install openssl-devel # Openssl库
方法一、用init.d(这里用HTTPD-2.4.54为例)
1.安装httpd需要的依赖包
sudo yum groupinstall "Development Tools" -y

2.下载httpd2.4 源码
wget https://archive.apache.org/dist/httpd/httpd-2.4.54.tar.gz

3.解压下载压缩包
安装好tar包-----yum install tar -y
tar -zxvf httpd-2.4.54.tar.gz
cd httpd-2.4.54

4.配置http
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --with-zlib --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

源码编译的时候出现这个问题
1、configure: checking for APR... no configure: error: APR not found. Please read the documentation.这个错误,意味着配置脚本无法在系统中找到APR库。APR是一个为操作系统级功能提供跨平台接口的库

sudo yum install apr-devel apr-util-devel
2、 configure: error: pcre(2)-config for libpcre not found. PCRE is required and available from http://pcre.org/ 出现这个问题意味着配置脚本无法在系统中找到PCRE库的 pcre-config 工具。这个工具用于提供PCRE库的编译和链接信息。

sudo yum install pcre pcre-devel
5.编译并安装httpd
make -j 4
sudo make install
6.创建Apache用户和组
sudo groupadd -r apache
sudo useradd -r -g apache -s /sbin/nologin apache
7.将 User daemon 改为 User apache:
sed -r -i "s/^User [a-zA-Z]*/User apache/" /usr/local/httpd/conf/httpd.conf
8.将 Group daemon 改为 Group apache
sed -r -i "s/^Group [a-zA-Z]*/Group apache/" /usr/local/httpd/conf/httpd.conf
9.将 DocumentRoot "/usr/local/httpd/htdocs" 改为 DocumentRoot "/var/www":
sed -r -i "s%^DocumentRoot \".*\"%DocumentRoot \"/var/www\"%" /usr/local/httpd/conf/httpd.conf
10.将 <Directory "/usr/local/httpd/htdocs"> 改为 <Directory "/var/www">
sed -r -i "s%^<Directory \".*htdocs\">%<Directory \"/var/www\">%" /usr/local/httpd/conf/httpd.conf
11.确保 /var/www 目录存在
sudo mkdir -p /var/www
12.创建一个系统服务管理脚本 /etc/init.d/httpd:
sudo vi /etc/init.d/httpd
#!/bin/bash
. /etc/rc.d/init.d/functionsapachectl=/usr/local/httpd/bin/apachectl
httpd=/usr/local/httpd/bin/httpd
prog=httpd
start() {echo -n $"Starting $prog: "daemon $httpd $OPTIONSRETVAL=$?echo[ $RETVAL = 0 ] && touch /var/lock/subsys/httpdreturn $RETVAL
}stop() {echo -n $"Stopping $prog: "killproc $httpdRETVAL=$?echo[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpdreturn $RETVAL
}# See how we were called.
case "$1" instart)start;;stop)stop;;status)status $httpd;;restart)stopstart;;condrestart)if [ -f /var/lock/subsys/httpd ]; thenstopstartfi;;*)echo $"Usage: $0 {start|stop|restart|condrestart|status}"exit 1
esacexit $?
13.赋予执行权限
sudo chmod +x /etc/init.d/httpd
14.将 httpd 服务添加到系统服务管理中,并设置开机启动
sudo chkconfig --add httpd
sudo chkconfig httpd on
如果出现以下的问题:
![]()
查看/etc/init.d/目录下是否存在httpd脚本,并检查它是否包含chkconfig所需的注释(如# chkconfig: 2345 10 90)-----对于没有包含chkconfig这个就需要以下的操作
添加chkconfig注释:
在脚本的开头部分(通常在#!/bin/sh之后),添加以下注释行
# chkconfig: 2345 10 90
# description: Apache HTTP Server
15.启动httpd服务
systemctl start httpd
systemctl enable httpd

16、测试 httpd 服务是否正常运行
使用 curl 命令测试(本地或远程测试 )
yum install curl -y
步骤:
在命令行中输入curl http://<服务器IP地址或域名>。
如果 httpd 服务正常运行,curl命令会返回服务器返回的网页内容,例如 HTML 代码等。如果服务没有正常运行,可能会出现无法连接、超时等错误信息。
我这里用了我服务端的IP地址

方法二:使用 systemd 服务文件(这里用HTTPD-2.4.46为例)
前三个步骤与init.d脚本的方法大同小异出现错误的形式也一样可以看以上的方法步骤
1.下载源码
wget https://archive.apache.org/dist/httpd/httpd-2.4.46.tar.gz
2.解压源码
tar -xzf httpd-2.4.46.tar.gz
cd httpd-2.4.46
3.编译安装
./configure --prefix=/usr/local/apache --enable-so --enable-ssl

checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures遇到这个错误,通常意味着缺少必要的依赖项或环境配置不正确,导致 configure 脚本无法成功构建 SSL 模块

确保你的系统上已经安装了 OpenSSL 开发库
sudo yum install openssl-devel
4.make

出现以下错误,这意味着你的系统中没有安装 make 工具。make 是一个用于管理编译过程的工具,它根据 Makefile 中的指令来编译和链接程序

sudo yum groupinstall "Development Tools"
5.创建 systemd 服务文件:
创建vim /etc/systemd/system/httpd.service 文件
[Unit]
Description=The Apache HTTP Server
After=network.target[Service]
Type=forking
PIDFile=/usr/local/apache/logs/httpd.pid
ExecStart=/usr/local/apache/bin/httpd -k start
ExecReload=/usr/local/apache/bin/httpd -k restart
ExecStop=/usr/local/apache/bin/httpd -k stop
PrivateTmp=true[Install]
WantedBy=multi-user.target
~
6.重载systemd配置:
systemctl daemon-reload
7.启动httpd服务和状态:
systemctl start httpd
systemctl status httpd

8.测试 httpd 服务是否正常运行(网页访问测试)
前提条件:确保 httpd 服务已经启动,并且防火墙规则允许访问 httpd 服务的端口。
步骤:
打开网页浏览器,在地址栏中输入服务器的 IP 地址或者域名(如果有配置域名解析)。
如果 httpd 服务正常运行并且配置正确,应该可以看到 Apache 的默认欢迎页面或者你自己配置的网站首页。这表明 httpd 服务能够正确地接收和处理 HTTP 请求,并返回相应的网页内容。

相关文章:
源码编译安装httpd 2.4,提供系统服务管理脚本并测试
总结需要安装的包 sudo yum groupinstall "Development Tools" -y #httpd的依赖包yum install tar -y #tar压缩包sudo yum install apr-devel apr-util-devel #APR库 提供跨平台接口的库sudo yum install pcre pcre-devel # PCRE库和 pcre-config工具--提供PCRE库…...
Linux固定ip
进入etc/sysconfig/network-scripts目录 cd /etc/sysconfig/network-scripts 编辑ifcfg-ens33文件 vi ifcfg-ens33 将BOOTPROTO的值改为“static”,在文档最后添加需要的固定IP BOOTPROTO"static" IPADDR192.168.132.136点击按键“esc”,…...
Java 输入输出流(上)
目录 1.Java 输入输出流 2.Java File类 3.Java File类目录 1.创建目录 2.列出目录中的文件 4.Java File类文件 1.文件的创建与删除 2.运行可执行文件 5.Java 文件字节输入流(1) 6.Java 文件字节输入流(2) 1.使用输入流读取字节 2.关闭流 7.Java 文件字节输出流(1…...
mysql、oracle、sqlserver的区别
一、保存数据的持久性: MySQL:是在数据库更新或者重启,则会丢失数据。 Oracle:把提交的sql操作线写入了在线联机日志文件中,保持到了磁盘上,可以随时恢复。 SqlServer:2…...
Java+Maven+GDAL
下载已经编译好的压缩包,下载地址 解压 jar 包 release-1930-x64-dev.zip\release-1930-x64\bin\gdal\java 目录下 打成Maven依赖 mvn install:install-file -Dfilegdal-3.10.1.jar -DgroupIdorg.gdal -DartifactIdgdal -Dversion3.10.1 -Dpackagingjar -Dgener…...
初识算法和数据结构P1:保姆级图文详解
文章目录 前言1、算法例子1.1、查字典(二分查找算法)1.2、整理扑克(插入排序算法)1.3、货币找零(贪心算法) 2、算法与数据结构2.1、算法定义2.2、数据结构定义2.3、数据结构与算法的关系2.4、独立于编程语言…...
【Go】Go Gorm 详解
1. 概念 Gorm 官网:https://gorm.io/zh_CN/docs/ Gorm:The fantastic ORM library for Golang aims to be developer friendly,这是官网的介绍,简单来说 Gorm 就是一款高性能的 Golang ORM 库,便于开发人员提高效率 那…...
【IDEA版本升级JDK21报错方法引用无效 找不到符号】
java: 方法引用无效 找不到符号 符号: 方法 getFirst() 位置: 接口 java.util.List 升级JDK21版本遇到问题,报错找不到符号 但是点进去又能发现这个函数,证明能够找到这个方法,但是就是报错 java: 方法引用无效 找不到符号 符号: …...
Node.js 版本管理工具完全指南
Node.js 版本管理工具完全指南 目录 1. nvm (Node Version Manager)2. n (Node Package Manager)3. fnm (Fast Node Manager)4. Volta5. 工具对比 1. nvm (Node Version Manager) 1.1 安装指南 macOS/Linux # 使用 curl 安装 curl -o- https://raw.githubusercontent.com…...
JavaSE学习心得(多线程与网络编程篇)
多线程-网络编程 前言 多线程&JUC 多线程三种实现方式 第一种实现方式 第二种实现方式 第三种实现方式 常见成员方法 买票引发的安全问题 同步代码块 同步方法 Lock锁 生产者和消费者 常见方法 等待唤醒机制 练习 抢红包 抽奖 多线程统计并求最…...
平均精确率均值(mAP)
mAP(mean Average Precision,平均精确率均值) 并不是传统意义上的“精度”(Accuracy),而是一种专门用于评估目标检测、图像分割或信息检索等任务的性能指标。它更全面地反映了模型在不同类别和不同置信度阈…...
VUE学习笔记1__创建VUE实例
核心步骤 <div id"app"><!-- 这里存放渲染逻辑代码 --><h1>{{ msg }}</h1><a href"#">{{count}}</a> </div><!-- 引入在线的开发版本核心包 --> <!-- 引入核心包后全局可使用VUE构造函数 --> <…...
Inxpect毫米波安全雷达:精准检测与动态保护,工业自动化可靠选择
Inxpect毫米波安全雷达具备“精准检测、动态区域保护、环境适应性”三大核心功能。在工业自动化和机器人系统里,这些功能发挥着重要作用,有助于提升安全性与效率。Inxpect雷达运用毫米波技术,在诸如存在灰尘、烟雾或碎屑等复杂环境中,也能保持…...
基于禁忌搜索算法的TSP问题最优路径搜索matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于禁忌搜索算法的TSP问题最优路径搜索,旅行商问题(TSP)是一个经典的组合优化问题。其起源可以追溯到 19 世纪初,…...
C51交通控制系统的设计与实现
实验要求: 本题目拟设计一个工作在十字路口的交通信号灯控制系统,设东西方向为主干道A,南北方向为辅助干道B。要求:(1)用发光二极管模拟交通灯信号;(2)灵活控制主、辅干…...
深度学习的超参数
1. 引言 1.1 什么是超参数? 在机器学习和深度学习中,超参数(Hyperparameter) 是在模型训练前由开发者设置的参数,这些参数决定了模型的训练过程和模型的结构。例如: 神经网络的层数和每层神经元的数量。…...
网络安全面试题及经验分享
本文内容是i春秋论坛面向专业爱好者征集的关于2023年面试题目和答案解析,题目是真实的面试经历分享,具有很高的参考价值。 shiro反序列化漏洞的原理 Shiro反序列化漏洞的原理是攻击者通过精心构造恶意序列化数据,使得在反序列化过程中能够执…...
【Golang 面试题】每日 3 题(三十一)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...
微服务架构:挑战与机遇并存
微服务架构在提升系统灵活性、可扩展性和容错性的同时,也引入了一系列挑战。微服务带来的挑战主要有以下几点: 1. 系统复杂性增加:想象一下,你原本有一个大厨房(单体应用),里面有几个大厨&…...
Vue语音播报功能
使用Web Speech API的SpeechSynthesis接口来实现文本转语音 Web Speech API可能不在所有浏览器中都能完美支持 特别是旧浏览器 在生产环境中,你可能需要添加功能检测和后备方案。<template><div><textarea v-model"text" placeholder&quo…...
UE5 BaseEditorSettings.ini加载原理与配置生效机制
1. 为什么你改了BaseEditorSettings.ini却没生效?——从UE5编辑器启动流程讲起很多人在UE5项目里折腾半天,把BaseEditorSettings.ini文件翻来覆去改了十几遍,重启编辑器后发现:缩放比例还是不对、网格间距没变、甚至“启用实时预览…...
Allegro等长设置翻车实录:拓扑模板法的3个坑与手工PinPair的救赎
Allegro等长设计避坑指南:从拓扑模板到精准PinPair的实战演进在高速PCB设计中,等长匹配如同精密钟表里的齿轮啮合,差之毫厘便可能导致整个系统时序崩塌。当设计从简单的点对点结构升级到多负载复杂拓扑时,Allegro用户常陷入两种典…...
③ AI副业第一步:如何找到适合自己的AI赚钱赛道
③ AI副业第一步:如何找到适合自己的AI赚钱赛道选对赛道,努力才有意义。选错赛道,越努力离钱越远。前言:为什么大多数人AI副业做不起来? 我观察了100想做AI副业的人,失败的原因高度一致: 失败路…...
3分钟掌握HashCalculator:你的文件完整性守护专家
3分钟掌握HashCalculator:你的文件完整性守护专家 【免费下载链接】HashCalculator 哈希值计算工具,批量计算/批量校验/查找重复文件/改变哈希值等,支持集成到系统右键菜单 项目地址: https://gitcode.com/gh_mirrors/ha/HashCalculator …...
WarcraftHelper:魔兽争霸III现代兼容性问题的终极解决方案指南
WarcraftHelper:魔兽争霸III现代兼容性问题的终极解决方案指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III作为经典即时战…...
基于ESP32与MQTT的家庭环境监测系统:从传感器选型到数据可视化实战
1. 项目概述与核心价值最近几年,我身边越来越多的朋友开始关注家里的空气质量、温湿度这些看不见摸不着,但又实实在在影响生活舒适度和健康的环境指标。从新装修的房子担心甲醛,到有老人小孩的家庭在意PM2.5和二氧化碳浓度,再到南…...
179个核心职位,50个公司分类,中国大模型产业全栈
最后 对于正在迷茫择业、想转行提升,或是刚入门的程序员、编程小白来说,有一个问题几乎人人都在问:未来10年,什么领域的职业发展潜力最大? 答案只有一个:人工智能(尤其是大模型方向)…...
终极免费音乐解锁工具:5步轻松解密你的加密音乐文件
终极免费音乐解锁工具:5步轻松解密你的加密音乐文件 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https:/…...
基于Arduino与蓝牙模块的六路无线开关控制系统设计与实现
1. 项目概述:用手机蓝牙控制六路LED想不想把手机变成一个无线遥控器,随手一点就能开关家里的灯带、氛围灯,甚至是其他电器?这个项目就是为你准备的。它基于一块功能增强的Arduino兼容板——GlowDuino Uno,配合一个极其…...
Hermes Agent工具如何自定义接入Taotoken提供商
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Hermes Agent工具如何自定义接入Taotoken提供商 Hermes Agent 是一款功能强大的AI智能体开发框架,它支持通过自定义提供…...
