从源码到生产:Apache 2.4.57 自动化安装实战指南(附脚本)
引言:为何选择源码安装 Apache?
在服务器运维场景中,源码编译安装 Apache HTTP Server 是实现精细化配置的重要方式。相比包管理器安装,源码安装可自定义模块组合、适配特定依赖环境,并精确控制版本。本文将通过自动化脚本,详解 Apache 2.4.57 的编译部署全流程,适用于 CentOS/RHEL 系 Linux 系统。
一、自动化安装脚本解析
1. 脚本核心功能架构
以下是完整的 Apache 2.4.57 源码安装脚本,可一键完成依赖安装、编译配置及服务启动:
#!/bin/bash
# Apache 2.4.57 源码安装脚本 | 作者: tommypeng 20230223
APACHE_VERSION=2.4.57
PREFIX=/usr/local/apache# 安装编译依赖
yum install -y gcc make pcre-devel openssl-devel expat-devel apr*# 从清华镜像站下载源码(含国内加速)
wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-$APACHE_VERSION.tar.gz --no-check-certificate# 解压源码包
tar -xzvf httpd-$APACHE_VERSION.tar.gz# 编译配置与安装
cd httpd-$APACHE_VERSION
./configure --prefix=$PREFIX \--enable-so --enable-ssl --with-ssl \--enable-mods-shared=all \--enable-headers --enable-proxy --enable-rewrite
make && make install# 配置系统环境变量
echo "export PATH=\$PREFIX/bin" >> /root/.bash_profile
source /root/.bash_profile > /dev/null# 清理临时文件
cd ..
rm -rf httpd-$APACHE_VERSION httpd-$APACHE_VERSION.tar.gz# 启动服务(修改配置文件监听端口)
sed -i '211s/#/ /' /usr/local/apache/conf/httpd.conf
/usr/local/apache/bin/apachectl start# 显示访问IP(适用于ens33网卡环境)
IP=$(ip a | grep "inet "|grep "ens33" | awk '{print $2}' | awk -F/ '{print $1}')
echo "Apache已启动,访问 http://$IP 测试服务"
2. 脚本执行流程拆解
-
环境准备阶段
- 通过
yum install
安装 GCC 编译工具链、PCRE 正则库、OpenSSL 加密库等核心依赖,apr*
包为 Apache 提供跨平台运行时支持。 - 从清华镜像站下载源码,相比官方源可提升国内网络环境下的下载速度。
- 通过
-
编译配置阶段
./configure
参数是源码安装的核心,通过选项开关控制 Apache 功能模块:--prefix=$PREFIX
:指定安装目录为/usr/local/apache
--enable-ssl
+--with-ssl
:启用 HTTPS 支持,依赖 OpenSSL 库--enable-mods-shared=all
:编译所有模块为动态加载模式,便于后续按需启用--enable-rewrite
:激活 URL 重写模块,常用于反向代理和 SEO 优化
-
服务部署阶段
- 将 Apache 二进制目录添加到系统 PATH,确保
apachectl
等命令可全局调用; - 通过
sed
修改 httpd.conf 第 211 行(通常为Listen 80
注释行),启用 HTTP 端口监听; - 自动获取服务器 IP 并提示访问地址,简化测试流程。
- 将 Apache 二进制目录添加到系统 PATH,确保
二、关键技术参数深度解析
1. 编译配置选项的生产环境考量
选项 | 功能描述 | 生产环境建议 |
---|---|---|
--enable-so | 启用动态模块加载机制,允许运行时加载模块而无需重新编译 | 必须启用,提升灵活性 |
--disable-deflate | 禁用内容压缩模块(默认启用) | 仅在带宽充足且 CPU 资源紧张时禁用 |
--with-mpm=prefork | 指定 MPM(多进程处理模块),prefork 适用于静态内容为主的场景 | 默认为worker ,根据业务类型调整 |
--enable-cache | 启用缓存模块,加速静态资源响应 | 建议启用,配合 CDN 效果更佳 |
2. MPM 选型与性能优化基础
Apache 的 MPM 决定了其处理并发请求的模式:
- prefork MPM:
./configure --with-mpm=prefork
- 特点:每个进程处理一个请求,适合 CPU 密集型场景(如 PHP 解析)
- 配置示例(httpd.conf):
<IfModule prefork.c>StartServers 5MinSpareServers 5MaxSpareServers 10MaxRequestWorkers 150MaxConnectionsPerChild 0 </IfModule>
- worker MPM(默认模式):
./configure --with-mpm=worker
- 特点:多线程处理请求,适合高并发、IO 密集型场景(如反向代理)
三、生产环境部署注意事项
1. 安全强化措施
-
源码包校验
手动验证下载包的完整性(避免--no-check-certificate
风险):# 下载官方哈希值文件 wget https://www.apache.org/dist/httpd/httpd-$APACHE_VERSION.tar.gz.sha256 # 校验哈希 sha256sum -c httpd-$APACHE_VERSION.tar.gz.sha256
-
权限最小化
- 安装后修改运行用户:
# 创建专用用户 useradd -M -s /sbin/nologin apache # 修改配置文件 sed -i 's/User daemon/User apache/g' /usr/local/apache/conf/httpd.conf sed -i 's/Group daemon/Group apache/g' /usr/local/apache/conf/httpd.conf
- 安装后修改运行用户:
-
防火墙配置
- 替代脚本中直接关闭防火墙的操作(生产环境严禁禁用防火墙):
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
- 替代脚本中直接关闭防火墙的操作(生产环境严禁禁用防火墙):
2. 兼容性与可维护性优化
-
网卡适配方案
- 动态获取 IP 地址(兼容不同网卡名称):
IP=$(ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '127.0.0.1' | head -1)
- 动态获取 IP 地址(兼容不同网卡名称):
-
服务管理集成
- 添加 systemd 服务配置,实现系统级管理:
cat > /usr/lib/systemd/system/httpd.service << EOF [Unit] Description=Apache HTTP Server After=network.target[Service] Type=forking PIDFile=/usr/local/apache/logs/httpd.pid ExecStart=/usr/local/apache/bin/apachectl start ExecStop=/usr/local/apache/bin/apachectl stop ExecReload=/usr/local/apache/bin/apachectl graceful User=apache Group=apache[Install] WantedBy=multi-user.target EOF
- 重载 systemd 并启动服务:
systemctl daemon-reload systemctl enable --now httpd
- 添加 systemd 服务配置,实现系统级管理:
四、源码安装的优势与应用场景
1. 核心优势对比
安装方式 | 源码编译安装 | 包管理器安装(如 yum/apt) |
---|---|---|
版本控制 | 精确控制版本(如 2.4.57) | 受限于仓库版本(可能非最新) |
模块定制 | 自由选择编译模块,减少冗余 | 固定模块组合,可能包含未使用功能 |
依赖适配 | 可针对旧系统或特殊环境定制依赖版本 | 依赖库由仓库统一管理 |
部署灵活性 | 适合复杂架构(如多实例、多端口部署) | 适合标准化环境 |
2. 典型应用场景
- 旧系统兼容性:在 CentOS 7 等停止更新的系统中安装最新版 Apache;
- 功能定制需求:如编译启用
mod_security
模块实现 WAF 功能; - 性能极致优化:仅编译必要模块(如
--disable-all-modules
+ 按需启用),减少内存占用。
五、实战验证与故障排查
1. 安装验证步骤
-
服务状态检查
/usr/local/apache/bin/apachectl -t # 检查配置文件语法 systemctl status httpd # 查看服务运行状态(如已配置systemd)
-
功能测试
- 创建测试页面:
echo "<?php phpinfo(); ?>" > /usr/local/apache/htdocs/index.php
- 浏览器访问
http://服务器IP
,若显示 PHP 信息页则安装成功。
- 创建测试页面:
2. 常见故障与解决方案
故障现象 | 可能原因 | 解决方案 |
---|---|---|
编译报错no acceptable C compiler | 未安装 GCC | yum install -y gcc |
启动失败Address already in use | 80 端口被占用 | 修改 httpd.conf 的Listen 端口为其他值(如 8080) |
HTTPS 访问失败 | SSL 模块未正确加载 | 检查httpd.conf 是否包含LoadModule ssl_module |
中文显示乱码 | 字符集配置错误 | 在 httpd.conf 中添加AddDefaultCharset utf-8 |
总结
通过源码编译安装 Apache 2.4.57,运维人员可获得更高的控制权和灵活性,尤其适合对性能、安全性和定制化有要求的生产环境。本文提供的自动化脚本覆盖了从依赖安装到服务启动的全流程,结合生产环境优化建议,可帮助读者快速构建稳定的 Web 服务架构。在实际部署中,建议结合容器化技术(如 Docker)或配置管理工具(如 Ansible)进一步提升部署效率与可维护性。
#!/bin/bash
# Set Apache version to install
##author:tommypeng20230223
APACHE_VERSION=2.4.57# Set installation prefix
PREFIX=/usr/local/apache# Install dependencies
yum install -y gcc make pcre-devel openssl-devel expat-devel apr*# Download Apache source
wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-$APACHE_VERSION.tar.gz --no-check-certificate
#curl -O https://archive.apache.org/dist/httpd/httpd-&APACHE_VERSION.tar.gz# Extract Apache source
tar -xzvf httpd-$APACHE_VERSION.tar.gz# Compile and install Apache
cd httpd-$APACHE_VERSION
./configure --prefix=$PREFIX --enable-so --enable-ssl --with-ssl --enable-mods-shared=all --enable-headers --enable-proxy --enable-rewrite
make
make install# Add Apache binary directory to system PATH
echo "export PATH=\$PREFIX/bin" >> /root/.bash_profile
source /root/.bash_profile > /dev/null# Clean up
cd ..
rm -rf httpd-$APACHE_VERSION httpd-$APACHE_VERSION.tar.gz#start server
sed -i '211s/#/ /' /usr/local/apache/conf/httpd.conf
/usr/local/apache/bin/apachectl start
# test
IP=$(ip a | grep "inet "|grep "ens33" | awk '{print $2}' | awk -F / '{print $1}')
echo "web登录$IP看看是否成功"
相关文章:
从源码到生产:Apache 2.4.57 自动化安装实战指南(附脚本)
引言:为何选择源码安装 Apache? 在服务器运维场景中,源码编译安装 Apache HTTP Server 是实现精细化配置的重要方式。相比包管理器安装,源码安装可自定义模块组合、适配特定依赖环境,并精确控制版本。本文将通过自动化…...
CMake实践:指定gcc版本编译和交叉编译
目录 1.指定gcc版本编译 1.1.通过CMake参数来实现 1.2.使用 RPATH/RUNPATH 直接指定库路径 1.3.使用符号链接和 LD_LIBRARY_PATH 1.4.使用 wrapper 脚本封装 LD_LIBRARY_PATH 2.交叉编译 2.1.基本用法 2.2.工具链文件关键配置 2.3.多平台工具链示例 2.4.注意事项 2.…...
【MySQL基础】MySQL内置函数全面解析:提升你的数据库操作效率
MySQL学习: https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言: MySQL提供了丰富的内置函数来帮助开发者高效地处理数据。这些函数覆盖了字符串操作、数值计算、日期时间处理、流程控制等多个方面。本文将全面…...
OpenCV CUDA模块设备层-----在GPU上计算两个uchar1类型像素值的反正切(arctangent)比值函数atan2()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 对输入的两个 uchar1 像素值 a 和 b,先分别归一化到 [0.0, 1.0] 浮点区间,然后计算它们的 四象限反正切函数。 函数原型…...
unity 半透明描线shader
效果如图 Shader "Custom/TransparentWithOutline_Fixed" {Properties{// 主材质属性_Color ("Main Color", Color) (1,1,1,1)_MainTex ("Base (RGB) Trans (A)", 2D) "white" {}_Glossiness ("Smoothness", Range(0,1)…...
react中使用antd的form表单去受控switch时初始值没有正确显示
解决方案 antd内api中有valuePropName熟悉 只需正常绑定当前元素触发事件即可...
01__QT的背景介绍和工程创建
一、QT软件的安装 1、qt的背景介绍 Qt 是一个跨平台的 图形界面库(重量级),1994年由罗威troll tech公司出品,它集成了网络、数据库、串口通信协议(RS232,蓝牙,NFC)、打印、PDF生成…...
Java Map 深度解析
一、HashMap 底层实现详解 1. 核心数据结构 HashMap 在 JDK 8 中的底层结构是 数组 链表 红黑树,其核心成员变量包括: transient Node<K,V>[] table;:哈希桶数组transient int size;:实际键值对数量int threshold;&…...
异地组网工具
目前手头上两台服务器(一台主力,一台有gpu用来跑点深度学习任务),两台pc(一台是主力,一台是便携碎片化时间随时赶工用); 之前组网的时候,用zerotiertailscale࿰…...
我们为什么要模拟
大约 25 年前,当我开始从事高速 PCB 设计时,速度很慢,层数少,介电常数和损耗角正切很高,设计裕量很宽,铜粗糙度无关紧要,玻璃编织样式也无关紧要。我们称电介质为“FR-4”,它们的特性…...
MySQL 三大日志:Redo、Undo 与 Binlog 详解
写在前面 关于三大日志,博主看了无数视频和文章,也是总结的非常精辟了! 在 MySQL 数据库的运行机制中,Redo Log、Undo Log 和 Binlog 起着至关重要的作用,它们各司其职,共同保障数据库的数据安全、事务一…...
JMeter-SSE响应数据自动化3.0
背景 此次因为多了一些需要过滤排除的错误(数量很少),还需要修改下JMeter的jtl文件输出数据(后续统计数据需要) 所以只涉及到JSR脚本的一些改动(此部分改动并不会影响到JMeter的HTML报告) 改动 主要通过设置JMeter中prev输出数据变量threadN…...
C#上位机通过WebApi访问WinCC
在智能工厂架构中,WinCC作为SCADA一级,负责着与上级MES和下级PLC及其他现场组件的联系。与下层通信,WinCC支持S7、MC、Modbus TCP、OPC等多种接口和协议。对上层通信,WinCC从7.5 SP2开始支持REST Api这种Web接口方式。 今天跟大家…...
【深度学习新浪潮】什么是端侧AI?
什么是端侧AI? 端侧AI的定义 端侧AI(Edge AI)是指在终端设备(如手机、智能家居、穿戴设备等)本地运行的人工智能技术,无需将数据上传至云端服务器,直接在设备端完成数据处理、模型推理和决策。其核心优势在于低延迟、高隐私性、减少网络依赖,尤其适合对实时性和数据安…...
Postman 的 Jenkins 管理 - 自动构建
目录 一、环境准备 创建 Postman 集合和环境 二、postman Postman 集合和环境并导出 1. 打开已完成并测试无误的 postman 项目脚本。 再次执行测试。 编辑2. 导出( 测试用例集、环境变量 两个文件)**“不 支 持 中 文”** —— 全部改成英文&a…...
HomeBrew MAC PRO 安装教程
1、检查xcode工具 这个东西一般是有的,命令后输入以下内容即可 xcode-select --install如安装,结果为: 2、安装HomeBrew 方式1(推荐) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebr…...
多模态大语言模型arxiv论文略读(129)
Task Success Prediction for Open-Vocabulary Manipulation Based on Multi-Level Aligned Representations ➡️ 论文标题:Task Success Prediction for Open-Vocabulary Manipulation Based on Multi-Level Aligned Representations ➡️ 论文作者:M…...
Android 实现 Toast 显示重叠问题,有效提升用户体验
Android 实现 Toast 显示重叠问题 在 Android 开发中,Toast 是一个非常常用的提示工具,能够为用户提供短暂的信息展示。然而,Toast 的默认实现中,存在一个体验上的问题,当多次触发 Toast 显示时,会导致多个…...
Spring Boot + MyBatis + Vue:构建高效全栈应用的实战指南
一、项目需求分析 假设我们需要开发一个简单的任务管理系统,用户可以通过该系统创建、查看和删除任务。以下是项目的基本需求: 用户管理:用户可以注册和登录系统。 任务管理:用户可以创建、查看和删除任务。 数据持久化&#x…...
语音情感识别:CNN-LSTM 和注意力增强 CNN-LSTM 模型的比较分析
摘要: 语音情感识别 (SER) 技术可帮助计算机理解语音中的人类情感,这在推进人机交互和心理健康诊断方面占据了关键地位。本研究的主要目标是通过创新的深度学习模型提高 SER 的准确性和泛化性。尽管它在人机交互和心理健康诊断等各个领域都很…...
Cursor Pro取消500次请求限制,无限用的体验更好了吗?
目录 前言 一、发生了什么?从"限量"到"无限"的升级 1.1 "顶配" Ultra 套餐的登场 1.2 Pro 套餐的"静默升级" 1.3 新旧方案对比 二、"无限"背后的体验:一个开发者的真实感受 三、Cursor 为何要…...
视频汇聚EasyCVR平台v3.7.2发布:新增全局搜索、播放器默认解码方式等4大功能
EasyCVR视频汇聚平台带着全新的v3.7.2版本重磅登场!此次升级,绝非简单的功能堆砌,而是从用户体验、操作效率以及系统性能等多维度进行的深度优化与革新,旨在为大家带来更加强大、稳定且高效的视频监控管理体验。 一、全局功能搜索…...
2025年AI热潮:开发一款聚合AI系统,包含AI对话、视频、数字人、办公、客服、剪辑为一体的ai智能系统有多强
前言,我们了解了网上比较火的ai平台,比如: 抖音豆包AI、百度AI、阿里巴巴AI、腾讯AI、华为AI、DeepSeek、ChatGPT、文心一言、通义千问 一、系统概述 本聚合AI系统是一个集AI对话、图片生成、视频生成、视频剪辑、数字人创作、音乐制作、办公…...
DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_项目里程碑示例(CalendarView01_22)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
AWS数据库迁移实战:本地MySQL零停机上云方案
一、迁移场景 本地环境:自建MySQL 5.7(数据量500GB),业务要求迁移停机时间<5分钟 目标架构: 二、迁移四步法 步骤1:环境准备(耗时30分钟) 1.1 创建Aurora MySQL # AWS CLI创…...
windows汇编
今天发现一个很好的视频,讲windows汇编/调试等。是个老太太讲的,但是讲的真好。 Create/Assemble/Link x64 Windows asm exe, Debugging Tools for Windows (WinDbg), stack shadow store. 照例边看边记录边实验。 1. install visual studio 2. instal…...
用 python 开发一个可调用工具的 AI Agent,实现电脑配置专业评价
在人工智能时代,AI Agent凭借其强大的任务处理能力,逐渐成为开发人员手中的得力工具。今天,我们就来一起动手,用Python打造一个能够调用工具的AI Agent,实现根据电脑信息对电脑配置进行专业评价的功能。 一、项目创建…...
Java自定义线程池(ThreadPoolExecutor)
Java线程池使用示例 下面将展示如何使用自定义线程池(ThreadPoolExecutor)来执行任务,包括提交Runnable任务、Callable任务,处理拒绝策略以及关闭线程池。 import java.util.concurrent.*;public class ThreadPoolDemo {// 自定义线程工厂(…...
386. 字典序排数
386. 字典序排数 理解题目要求 题目要求我们生成从 1 到 n 的整数的字典序排列,并且要求: 时间复杂度 O(n):不能使用直接排序(通常指的是使用标准的排序算法(如快速排序、归并排序、堆排序等)对数…...
Kaggle-Plant Seedlings Classification-(多分类+CNN+图形处理)
Plant Seedlings Classification 题意: 就是给出很多图片,预测出图片中的小草是什么类型的。 数据处理: 1.去除图片背景,只保留物体。 2.图片数据加强。 建立模型: 1.CNN的Sequential(),多层卷积块和…...
Android 应用多语言与系统语言偏好设置指南
文章目录 创建语言包以中文包为例 以系统为主导的“应用语言偏好设置”从你的应用调到“应用语言偏好设置” 创建语言包 我们可以使用一个很蹩脚的办法来实现: 以中文包为例 values是默认values-zh-rCN是简体中文values-zh-rTW是繁体(台湾省ÿ…...
Excel学习01
Excel是微软公司开发的一款电子表格软件,可以广泛应用于数据处理、统计分析、图表制作、财务管理和自动化办公领域等。Excel在实际工作中使用的非常广泛,为此本次开始针对excel的使用进行一系列讲解。 展示使用的软件是WPS,它和excel的使用方…...
Loggers 配置解析(log4j.xml)
Loggers 配置解析 我们通过下面的例子来理解 log4j 的 Loggers 配置是如何决定日志输出规则的。 <Loggers><!-- 根Logger:全局配置 --><Root level"debug"><AppenderRef ref"consoleAppender" level"info"/&g…...
Matplotlib 绘图库使用技巧介绍
目录 前言 Matplotlib 简介 快速入门 图形结构解剖 常用绘图函数 子图与布局 单行多列子图: 网格布局: 自定义位置: 样式与标注 中文字体与科学计数 图例、网格、坐标轴 动态图与动画 三维绘图 常见问题与技巧 前言 Matplotli…...
服务器如何从http升级到https(nginx)
1.证书申请 可以到阿里云或者华为云去申请证书,申请完下载证书是个压缩包,然后解压 可以到到几个文件夹,找到 .Nginx 文件夹打开 会有两个文件,将这两个文件上传至nginx/conf/cert文件夹下(cert需要手…...
解决戴尔电脑No bootable devices found问题
解决戴尔电脑No bootable devices found问题 一、调整BIOS设置 1、在关机状态下,打开计算机电源,在出现 Dell 徽标时按 F2 键以引导至 BIOS 设置菜单。 2、选择 Boot sequence(引导顺序 )并将选项从 Legacy(传统 &…...
FPGA基础 -- Verilog 行为级建模之条件语句
Verilog 的行为级建模(Behavioral Modeling)中的条件语句(Conditional Statements),逐步从基础到实际工程应用,适合有RTL开发基础但希望深入行为建模的人。 一、行为级建模简介 行为级建模(Beh…...
最大公约数
题目描述 输入两个正整数a,b,求a,b的最大公约数。 输入 输入正整数a和b,中间用空格隔开 输出 输出最大公约数 样例输入 144 84样例输出 12程序分析 :运用辗转相除法(欧几里得算法) 用较大数除以较小数,取余数;…...
springboot入门之路(一)
文章目录 1.Spring Boot介绍2.开发你的第一个Spring Boot应用2.1创建POM2.2yml和properties的配置区别yml配置properties配置 2.3springbootDemo代码2.4创建一个可执行jar 参考文档:SpringBoot参考指南;SpringBoot实战 1.Spring Boot介绍 Spring Boot使…...
vue | vue 插件化机制,全局注册 和 局部注册
组件插件化:提升组件的可复用性、扩展性和独立性 组件插件化实现方式 ├── 注册机制 │ ├── 全局注册(app.use)→ install, 循环注册, 配置项 │ └── 局部注册(import components) │ ├── 插件化能力…...
技术与情感交织的一生 (八)
目录 融合 东西厂公 接风宴 头痛 “巴巴罗萨” 突击 推进 助攻 96小时 寒冬 食堂 反攻 消耗 Delphi 西厂 内困 外患 “敦刻尔克” 多线作战 大撤退 资源 融合 东西厂公 初次来到纸箱厂,是主厂区,感觉很大,相对西面正在…...
基于python的web系统界面登录
#让我们的电脑可以支持服务访问 #需要一个web框架 #pip install Flask from flask import Flask, render_template,request from random import randint app Flask(__name__) app.route(/index) def index():uname request.args.get("uname")return f"主页&am…...
利用Java进行验证码的实现——算数验证码
我主要使用使用 Java Swing 库创建一个 GUI 窗口,然后在窗口中显示生成的算术验证码图片,并提供一个文本框和一个按钮,输入验证码并验证显示结果。 代码如下: package calculate; import javax.swing.*; import java.awt.*; imp…...
OpenStack入门体验
1.1云计算概述 相信大家都听到很多的阿里云、腾讯云、百度云等等这些词,那到底什么是云计算?云 计算又能做什么? 1.1.1什么是云计算 云计算(cloud computing)是一种基于网络的超级计算模式,基于用户的不同需求,提供所需的资源,包括计算资源、存储资源、网络资源等。云计算…...
实时中值滤波 + 低通滤波 示例程序(STM32环境)
一、功能概述 本示例实现两个滤波器: 中值滤波器(Median Filter):对短期异常值(如尖峰噪声)有良好的抑制能力;低通滤波器(Low-Pass Filter):对数据进行平滑…...
AppBarLayout+ CoordinatorLayout,ViewPager2为什么不会覆盖AppBarLayout
<?xml version"1.0" encoding"utf-8"?> <layout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http://schemas.android.com/tools&quo…...
C语言——枚举
目录 一、枚举的基本概念 1. 定义与语法 2. 枚举变量的声明 二、枚举的特性 1. 整型常量的本质 2. 作用域规则 3. 内存占用 三、枚举的使用场景 1. 替代宏定义常量 2. 状态机实现 3. 函数返回值类型 四、枚举与其他类型的对比 五、高级技巧与注意事项 1. 位掩码枚…...
148. 排序链表
题目: 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例1: 解题思路: 这道题是一道综合题,考察了链表中间节点合并有序链表。首先我们链表中间节点,然后从中间结点的前一个节点处断…...
26.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--角色权限管理
在现代企业级应用中,角色权限管理是保障系统安全和提升用户体验的核心基础功能。一个高效的角色权限系统不仅能够有效防止越权访问,还能简化系统的维护和扩展。本文将系统性介绍角色权限管理的核心实现思路,包括架构设计、性能优化、安全机制…...
flowable查询最新定义的流程梳理
背景。使用ruoyi-flowable-plus进行二次开发。将项目与流程绑定后查询相关流程表单时发现问题。于是梳理逻辑汇总了下面的思维导图和相关代码。查询逻辑。流程定义Key 最流程新版本(orderByProcessDefinitionVersion) 取第一条流程实例 最新的一条版本记录。这里一定要用流程…...