当前位置: 首页 > news >正文

源码编译安装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”&#xff0c;在文档最后添加需要的固定IP BOOTPROTO"static" IPADDR192.168.132.136点击按键“esc”&#xff0c;…...

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的区别

一、保存数据的持久性&#xff1a; MySQL&#xff1a;是在数据库更新或者重启&#xff0c;则会丢失数据。 Oracle&#xff1a;把提交的sql操作线写入了在线联机日志文件中&#xff0c;保持到了磁盘上&#xff0c;可以随时恢复。 SqlServer&#xff1a;2…...

Java+Maven+GDAL

下载已经编译好的压缩包&#xff0c;下载地址 解压 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、查字典&#xff08;二分查找算法&#xff09;1.2、整理扑克&#xff08;插入排序算法&#xff09;1.3、货币找零&#xff08;贪心算法&#xff09; 2、算法与数据结构2.1、算法定义2.2、数据结构定义2.3、数据结构与算法的关系2.4、独立于编程语言…...

【Go】Go Gorm 详解

1. 概念 Gorm 官网&#xff1a;https://gorm.io/zh_CN/docs/ Gorm&#xff1a;The fantastic ORM library for Golang aims to be developer friendly&#xff0c;这是官网的介绍&#xff0c;简单来说 Gorm 就是一款高性能的 Golang ORM 库&#xff0c;便于开发人员提高效率 那…...

【IDEA版本升级JDK21报错方法引用无效 找不到符号】

java: 方法引用无效 找不到符号 符号: 方法 getFirst() 位置: 接口 java.util.List 升级JDK21版本遇到问题&#xff0c;报错找不到符号 但是点进去又能发现这个函数&#xff0c;证明能够找到这个方法&#xff0c;但是就是报错 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&#xff08;mean Average Precision&#xff0c;平均精确率均值&#xff09; 并不是传统意义上的“精度”&#xff08;Accuracy&#xff09;&#xff0c;而是一种专门用于评估目标检测、图像分割或信息检索等任务的性能指标。它更全面地反映了模型在不同类别和不同置信度阈…...

VUE学习笔记1__创建VUE实例

核心步骤 <div id"app"><!-- 这里存放渲染逻辑代码 --><h1>{{ msg }}</h1><a href"#">{{count}}</a> </div><!-- 引入在线的开发版本核心包 --> <!-- 引入核心包后全局可使用VUE构造函数 --> <…...

Inxpect毫米波安全雷达:精准检测与动态保护,工业自动化可靠选择

Inxpect毫米波安全雷达具备“精准检测、动态区域保护、环境适应性”三大核心功能。在工业自动化和机器人系统里&#xff0c;这些功能发挥着重要作用,有助于提升安全性与效率。Inxpect雷达运用毫米波技术&#xff0c;在诸如存在灰尘、烟雾或碎屑等复杂环境中&#xff0c;也能保持…...

基于禁忌搜索算法的TSP问题最优路径搜索matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于禁忌搜索算法的TSP问题最优路径搜索&#xff0c;旅行商问题&#xff08;TSP&#xff09;是一个经典的组合优化问题。其起源可以追溯到 19 世纪初&#xff0c;…...

C51交通控制系统的设计与实现

实验要求&#xff1a; 本题目拟设计一个工作在十字路口的交通信号灯控制系统&#xff0c;设东西方向为主干道A&#xff0c;南北方向为辅助干道B。要求&#xff1a;&#xff08;1&#xff09;用发光二极管模拟交通灯信号&#xff1b;&#xff08;2&#xff09;灵活控制主、辅干…...

深度学习的超参数

1. 引言 1.1 什么是超参数&#xff1f; 在机器学习和深度学习中&#xff0c;超参数&#xff08;Hyperparameter&#xff09; 是在模型训练前由开发者设置的参数&#xff0c;这些参数决定了模型的训练过程和模型的结构。例如&#xff1a; 神经网络的层数和每层神经元的数量。…...

网络安全面试题及经验分享

本文内容是i春秋论坛面向专业爱好者征集的关于2023年面试题目和答案解析&#xff0c;题目是真实的面试经历分享&#xff0c;具有很高的参考价值。 shiro反序列化漏洞的原理 Shiro反序列化漏洞的原理是攻击者通过精心构造恶意序列化数据&#xff0c;使得在反序列化过程中能够执…...

【Golang 面试题】每日 3 题(三十一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…...

微服务架构:挑战与机遇并存

微服务架构在提升系统灵活性、可扩展性和容错性的同时&#xff0c;也引入了一系列挑战。微服务带来的挑战主要有以下几点&#xff1a; 1. 系统复杂性增加&#xff1a;想象一下&#xff0c;你原本有一个大厨房&#xff08;单体应用&#xff09;&#xff0c;里面有几个大厨&…...

Vue语音播报功能

使用Web Speech API的SpeechSynthesis接口来实现文本转语音 Web Speech API可能不在所有浏览器中都能完美支持 特别是旧浏览器 在生产环境中&#xff0c;你可能需要添加功能检测和后备方案。<template><div><textarea v-model"text" placeholder&quo…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...