当前位置: 首页 > 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…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...