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

源码部署lamt架构

源码部署lamt架构

lamt由apache,mysql,tomcat三者组成

文章目录

  • 源码部署lamt架构
    • 1.准备工作
      • 1.1.配置yum源,关闭防火墙和selinux
      • 1.2.拉取相应源码包
    • 2.安装apache
    • 3.安装mariadb
    • 4.安装tomcat

1.准备工作

1.1.配置yum源,关闭防火墙和selinux

[root@tomcat ~]# rm -rf /etc/yum.repos.d/*
[root@tomcat ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100  2495  100  2495    0     0   2231      0  0:00:01  0:00:01 --:--:--  2231
[root@tomcat ~]# cat > /etc/yum.repos.d/server.repo << eof
> [Everything]
> name=everything
> baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/
> enabled=1
> gpgcheck=0
> 
> [good]
> name=good
> baseurl=http://rpms.remirepo.net/enterprise/8/remi/x86_64/
> enabled=1
> gpgcheck=0
> eof
[root@tomcat ~]# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
12 files removed
[root@tomcat ~]# yum makecache//关闭防火墙和selinux
[root@note1 ~]# systemctl disable --now firewalld.service 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@note1 ~]# setenforce 0

1.2.拉取相应源码包

[root@tomcat ~]# yum -y install wget vim
省略 . . .
[root@tomcat ~]# wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
[root@tomcat ~]# wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
[root@tomcat ~]# wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz
[root@tomcat ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80.tar.gz  apr-1.7.4.tar.gz  apr-util-1.6.3.tar.gz  httpd-2.4.57.tar.gz

2.安装apache

//安装依赖包
[root@tomcat ~]# yum -y install gcc gcc-c++ make pcre-devel openssl openssl-devel libtool expat-devel bzip2
省略 . . . //安装开发工具包
[root@tomcat ~]# yum groups mark install 'Development Tools'//创建apache服务的用户和组
[root@tomcat ~]# groupadd -r apache
[root@tomcat ~]# useradd -r -M -s /sbin/nologin -g apache apache//解压源码包
[root@tomcat ~]# tar xf apr-1.7.4.tar.gz -C /usr/local/
[root@tomcat ~]# tar xf apr-util-1.6.3.tar.gz -C /usr/local/
[root@tomcat ~]# tar xf httpd-2.4.57.tar.gz -C /usr/local/
[root@tomcat ~]# cd /usr/local/ && ls
apr-1.7.4  apr-util-1.6.3  bin  etc  games  httpd-2.4.57  include  lib  lib64  libexec  sbin  share  src//进入apr的源码包目录,在configure定制组件中修改相关信息
[root@tomcat local]# cd apr-1.7.4/
[root@tomcat apr-1.7.4]# ls
apr-config.in  atomic            config.layout  file_io     LICENSE       network_io     README.cmake  time
apr.dep        build             configure      helpers     locks         NOTICE         shmem         tools
apr.dsp        build.conf        configure.in   include     Makefile.in   NWGNUmakefile  strings       user
apr.dsw        buildconf         docs           libapr.dep  Makefile.win  passwd         support
apr.mak        build-outputs.mk  dso            libapr.dsp  memory        poll           tables
apr.pc.in      CHANGES           emacs-mode     libapr.mak  misc          random         test
apr.spec       CMakeLists.txt    encoding       libapr.rc   mmap          README         threadproc
[root@tomcat apr-1.7.4]# sed -i '/$RM "$cfgfile"/ # $RM "$cfgfile"/g' configure
sed: -e expression #1, char 18: comments don't accept any addresses
[root@tomcat apr-1.7.4]# sed -i 's/$RM "$cfgfile"/ # $RM "$cfgfile"/g' configure
[root@tomcat apr-1.7.4]# grep -C2 '# $RM "$cfgfile"' configurecfgfile=${ofile}Ttrap "$RM \"$cfgfile\"; exit 1" 1 2 15# $RM "$cfgfile"cat <<_LT_EOF >> "$cfgfile"
[root@tomcat apr-1.7.4]#//编译安装apr-1.7.4、apr-util-1.6.3、httpd-2.4.57
[root@tomcat apr-1.7.4]# ./configure --prefix=/usr/local/apr
[root@tomcat apr-1.7.4]# make && make install[root@tomcat apr-1.7.4]# cd ../apr-util-1.6.3/
[root@tomcat apr-util-1.6.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@tomcat apr-util-1.6.3]# make && make install[root@tomcat apr-util-1.6.3]# cd ../httpd-2.4.57/
[root@tomcat httpd-2.4.57]# ./configure --prefix=/usr/local/apache \--enable-so \--enable-ssl \--enable-cgi \--enable-rewrite \--with-zlib \--with-pcre \--with-apr=/usr/local/apr \--with-apr-util=/usr/local/apr-util/ \--enable-modules=most \--enable-mpms-shared=all \--with-mpm=prefork
[root@tomcat httpd-2.4.57]# make && make install//安装后配置
[root@tomcat httpd-2.4.57]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/apache.sh
[root@tomcat httpd-2.4.57]# source /etc/profile.d/apache.sh
[root@tomcat httpd-2.4.57]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@tomcat httpd-2.4.57]# echo 'MANPATH /usr/local/apache/man' >> /etc/man.config//取消ServerName前面的注释
[root@tomcat httpd-2.4.57]# sed -i '/#ServerName/s/#//g' /usr/local/apache/conf/httpd.conf//启动httpd服务
[root@tomcat httpd-2.4.57]# apachectl start
[root@tomcat httpd-2.4.57]# ss -antl
State          Recv-Q         Send-Q                   Local Address:Port                   Peer Address:Port         
LISTEN         0              128                            0.0.0.0:22                          0.0.0.0:*            
LISTEN         0              128                               [::]:22                             [::]:*            
LISTEN         0              128                                  *:80                                *:*

访问apache页面
在这里插入图片描述

3.安装mariadb

使用yum命令安装mariadb

[root@tomcat ~]# yum -y install mariadb mariadb-server
[root@tomcat ~]# systemctl enable --now mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@note1 ~]# mysql -e "set password = password('12345678');"//查看端口
[root@tomcat ~]# ss -antl
State          Recv-Q         Send-Q                   Local Address:Port                   Peer Address:Port         
LISTEN         0              128                            0.0.0.0:22                          0.0.0.0:*            
LISTEN         0              128                               [::]:22                             [::]:*            
LISTEN         0              80                                   *:3306                              *:*            
LISTEN         0              128                                  *:80                                *:*

4.安装tomcat

//安装依赖包
[root@tomcat ~]# dnf -y install java-17-openjdk java-17-openjdk-devel//查看安装的版本,能够查看到版本则说明安装成功
[root@tomcat ~]# java --version
openjdk 17.0.1 2021-10-19 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12-LTS, mixed mode, sharing)//解压源码包至指定目录
[root@tomcat ~]# tar xf apache-tomcat-9.0.80.tar.gz -C /usr/local/
[root@tomcat ~]# cd /usr/local/ && ls
apache                apr        apr-util        bin  games         include  lib64    sbin   src
apache-tomcat-9.0.80  apr-1.7.4  apr-util-1.6.3  etc  httpd-2.4.57  lib      libexec  share//设置tomcat软链接,方便后续如果更换tomcat版本后也能直接使用
[root@tomcat local]# ln -s apache-tomcat-9.0.80 tomcat
[root@tomcat local]# ll 
total 12
drwxr-xr-x. 14 root root   164 Oct 10 23:52 apache
drwxr-xr-x.  9 root root   220 Oct 11 00:07 apache-tomcat-9.0.80
drwxr-xr-x.  6 root root    58 Oct 10 23:45 apr
drwxr-xr-x. 29  501 games 4096 Oct 10 23:45 apr-1.7.4
drwxr-xr-x.  5 root root    43 Oct 10 23:46 apr-util
drwxr-xr-x. 21  501 games 4096 Oct 10 23:46 apr-util-1.6.3
drwxr-xr-x.  2 root root     6 Aug 12  2018 bin
drwxr-xr-x.  2 root root     6 Aug 12  2018 etc
drwxr-xr-x.  2 root root     6 Aug 12  2018 games
drwxr-xr-x. 14  501 games 4096 Oct 10 23:51 httpd-2.4.57
drwxr-xr-x.  2 root root     6 Aug 12  2018 include
drwxr-xr-x.  2 root root     6 Aug 12  2018 lib
drwxr-xr-x.  2 root root     6 Aug 12  2018 lib64
drwxr-xr-x.  2 root root     6 Aug 12  2018 libexec
drwxr-xr-x.  2 root root     6 Aug 12  2018 sbin
drwxr-xr-x.  5 root root    49 Jul 20 11:24 share
drwxr-xr-x.  2 root root     6 Aug 12  2018 src
lrwxrwxrwx.  1 root root    20 Oct 11 00:08 tomcat -> apache-tomcat-9.0.80//将tomcat的lib位置存放在/etc/ld.so.conf/d/下面,命名一个自身名字的文件,方便查找
[root@tomcat local]# vim /etc/ld.so.conf.d/tomcat.conf
[root@tomcat local]# cat /etc/ld.so.conf.d/tomcat.conf
/usr/local/tomcat/lib//启动服务,使用绝对路径执行/usr/local/tomcat/bin/下面的脚本,tomcat不能写进环境变量,放置后续更改tomcat版本后环境变量仍是之前的tomcat版本
[root@tomcat local]# cd tomcat/bin/
[root@tomcat bin]# ./catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@tomcat bin]# ss -antl
State          Recv-Q         Send-Q                      Local Address:Port                 Peer Address:Port        
LISTEN         0              128                               0.0.0.0:22                        0.0.0.0:*           
LISTEN         0              128                                  [::]:22                           [::]:*           
LISTEN         0              1                      [::ffff:127.0.0.1]:8005                            *:*           
LISTEN         0              80                                      *:3306                            *:*           
LISTEN         0              100                                     *:8080                            *:*           
LISTEN         0              128                                     *:80                              *:*

访问tomcat的web页面
在这里插入图片描述

启用httpd的代理模块

[root@tomcat ~]# sed -i '/proxy_module/s/#//g' /usr/local/apache/conf/httpd.conf
[root@tomcat ~]# sed -i '/proxy_fcgi_module/s/#//g' /usr/local/apache/conf/httpd.conf
[root@tomcat ~]# sed -i '/proxy_connect_module/s/#//g' /usr/local/apache/conf/httpd.conf
[root@tomcat ~]# sed -i '/proxy_http_module/s/#//g' /usr/local/apache/conf/httpd.conf

配置虚拟主机

[root@tomcat ~]# vim /usr/local/apache/conf/httpd.conf
[root@tomcat ~]# tail -13 /usr/local/apache/conf/httpd.conf
SSLRandomSeed connect builtin
</IfModule><VirtualHost *:80>DocumentRoot "/usr/local/apache/htdocs"ProxyPass / http://192.168.195.133:8080/ProxyPassReverse / http://192.168.195.133:8080/<Directory "/usr/local/apache/htdocs">Options noneAllowOverride noneRequire all granted</Directory>
</VirtualHost>

重启apache

[root@tomcat ~]# apachectl restart
[root@tomcat ~]# ss -antl
State          Recv-Q         Send-Q                      Local Address:Port                 Peer Address:Port        
LISTEN         0              128                               0.0.0.0:22                        0.0.0.0:*           
LISTEN         0              128                                  [::]:22                           [::]:*           
LISTEN         0              1                      [::ffff:127.0.0.1]:8005                            *:*           
LISTEN         0              80                                      *:3306                            *:*           
LISTEN         0              100                                     *:8080                            *:*           
LISTEN         0              128                                     *:80                              *:*

通过80端口进行访问

在这里插入图片描述

相关文章:

源码部署lamt架构

源码部署lamt架构 lamt由apache&#xff0c;mysql&#xff0c;tomcat三者组成 文章目录 源码部署lamt架构1.准备工作1.1.配置yum源&#xff0c;关闭防火墙和selinux1.2.拉取相应源码包 2.安装apache3.安装mariadb4.安装tomcat 1.准备工作 1.1.配置yum源&#xff0c;关闭防火墙…...

【Java 进阶篇】JavaScript Math对象详解

在JavaScript编程中&#xff0c;Math对象是一个非常有用的工具&#xff0c;用于执行各种数学运算。它提供了许多数学函数和常数&#xff0c;可以用于处理数字、执行几何运算、生成随机数等。在本篇博客中&#xff0c;我们将深入探讨JavaScript中Math对象的各种功能和用法。 什…...

geecg-uniapp 路由修改 页面创建 (2)

一&#xff0c;增加页面 添加路由 &#xff08;1&#xff09;我们以home的常用服务 当作示例 我们修改 usList 数据 &#xff08;2&#xff09;查找对应路径 work.js 目前荒石对应的路径跳转 helloword 我们修改成 huang &#xff08;3&#xff09;修改跳转路径 修…...

微信开发者工具下载

一、微信开发者工具下载官网 微信开发者工具下载地址与更新日志 | 微信开放文档 (qq.com) 二、微信开发者工具界面 下载安装好后&#xff0c;软件图标如下图所示。 运行软件如下图所示&#xff0c;这时候就需要使用你的管理员账号扫码登录。 登陆后的界面&#xff0c;如下图…...

ctfshow萌新计划web9-14(正则匹配绕过)

目录 web9 web10 web11 web12 web13 web14 web9 审一下代码&#xff0c;需要匹配到system|exec|highlight才会执行eval函数 先看一下当前目录下有什么 payload&#xff1a;?csystem(ls); index.php是首页&#xff0c;我们看看config.php payload&#xff1a;?csystem…...

【数据结构】单链表按位序插入元素e【前插】(带头结点的和不带头结点的)这篇很重要,文字说明比起其他篇是正确的

声明单链表的结构体成员 struct LNode {int data;struct LNode *next; };typedef struct LNode LNode;// 或者: 两者是等价的 typedef struct LNode {int data;struct LNode *next; }LNode;按位序插入元素e&#xff1a;就是在第i个位置插入新结点&#xff0c;数据域为e 以下带…...

Maven Surefire Exclude 无效问题排查日志

昨天有个需求,要在单元测试的时候单线程执行,并且只执行单元测试类特殊结尾的,那么根据以往经验,直接在maven里面配置exclude并且指定include即可。如下尝试 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin&…...

ArcGIS笔记4_水动力模型验证不理想时如何修改局部水深地形

本文目录 前言Step 1 模型验证不理想的情况Step 2 修改确值点并重新插值 前言 本章主要服务于MIKE水动力模型的调整修改工作。水动力模型跑完之后&#xff0c;常常会出现验证结果不理想的情况&#xff0c;比如潮位验证中&#xff0c;实测站点数据与模拟数据相差很大&#xff0…...

介绍一下mysql有哪些索引类型

以下是MySQL的8种不同索引类型的比较&#xff0c;以帮助你了解它们的特点和适用场景&#xff1a; 索引类型用途和特点适用场景B-Tree 索引用于范围查询、等值查找和排序操作大多数查询 &#xff0c;不适合全文搜索和空间数据。唯一索引保证索引列的值唯一&#xff0c;不允许重…...

#力扣:125. 验证回文串@FDDLC

125. 验证回文串 一、Java class Solution {public boolean isPalindrome(String s) {for (int l 0, r s.length() - 1; l < r; l, r--) {while (l < r && !Character.isLetterOrDigit(s.charAt(l))) l;while (l < r && !Character.isLetterOrDig…...

分享一下便利店怎么做微信小程序

便利店微信小程序开发&#xff0c;让生意更便捷&#xff01; 在这个数字化时代&#xff0c;微信小程序已经成为一种新的生活方式。它不仅改变了人们的消费习惯&#xff0c;还为各行各业提供了无限商机。对于便利店来说&#xff0c;微信小程序是一个绝佳的营销工具&#xff0c;…...

Gitlab CI/CD 入门教程

前言 开发人员常常提到的 CI/CD 是什么&#xff1f; 是用于集成测试的工具&#xff0c;每次提交代码后自动检测、构建和进行单元测试的过程。这一整条流水线式的测试流程我们称之为 pipeline。 入门教程 如何使用 CI/CD? 首先需要确保有可用的 runner&#xff08;如何确保…...

【mfc/VS2022】计图实验:绘图工具设计知识笔记

绘制曲线&#xff08;贝塞尔曲线&#xff09;&#xff1a; 转自&#xff1a;CDC 类 | Microsoft Learn 绘制一条或多条贝塞尔曲线。 BOOL PolyBezier(const POINT* lpPoints,int nCount);参数 lpPoints 指向包含曲线端点和控制点的 POINT 数据结构数组。 nCount 指定 lpPo…...

C# PortraitModeFilter (人物图片)背景模糊

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Windows.Forms; us…...

centos7下安装elasticsearch7.8.1并配置远程连接

1、下载安装包 sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.1-linux-x86_64.tar.gz 2、解压 sudo tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz 3、添加用户并设置密码 sudo useradd es sudo passwd es # 设置密码 Lida15…...

MongoDB的作用和安装方法

MongoDB是一种非关系型数据库&#xff0c;其作用是存储和管理非结构化数据&#xff0c;例如文档、图像和视频等多媒体数据。它有以下几个特点&#xff1a; 数据存储的格式是类似JSON的文档格式&#xff0c;易于理解、存储和查询。可扩展性强&#xff0c;可以在多个服务器上分布…...

spring boot 使用SSE向前端推送数据

SSE&#xff08;Server-Sent Events&#xff09;是一种基于HTTP的实时通信协议&#xff0c;它允许服务器向客户端发送持久性的数据流。与WebSocket不同的是&#xff0c;SSE是单向通信&#xff0c;只能由服务器向客户端发送数据。Spring Boot通过Spring WebFlux模块提供了对SSE的…...

C++智能指针(三)——unique_ptr初探

与共享指针shared_ptr用于共享对象的目的不同&#xff0c;unique_ptr是用于独享对象。 文章目录 1. unqiue_ptr的目的2. 使用 unique_ptr2.1 初始化 unique_ptr2.2 访问数据2.3 作为类的成员2.4 处理数组 3. 转移所有权3.1 简单语法3.2 函数间转移所有权3.2.1 转移至函数体内3.…...

Composition Api 与 Options Api 有什么区别?

Vue 3.0采用的Composition API与Vue 2.x使用的Options API在编写Vue组件时有一些区别。 区别&#xff1a; 组织代码的方式不同&#xff1a; Options API&#xff1a;按照选项进行组织&#xff0c;将数据、计算属性、方法等声明在一个对象中。Composition API&#xff1a;按照逻…...

紫光同创FPGA实现UDP协议栈网络视频传输,基于YT8511和RTL8211,提供4套PDS工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的以太网方案紫光同创FPGA精简版UDP方案紫光同创FPGA带ping功能UDP方案 3、设计思路框架OV7725摄像头配置及采集OV5640摄像头配置及采集UDP发送控制视频数据组包数据缓冲FIFOUDP协议栈详解RGMII转GMII动态ARPUDP协议IP地址、端口…...

咱们今天来唠唠机器人轨迹规划那点事儿。不少小伙伴在玩机械臂的时候总会遇到关节空间和笛卡尔空间轨迹规划的抉择困难症,这俩货到底有什么区别?直接上硬核代码

matlab笛卡尔空间和关节空间轨迹规划 关节空间机器臂多项式轨迹规划定做&#xff0c;353和333多项式轨迹规划和优化关节空间规划有个大杀器——多项式插值。比如要让机械臂从A点平滑运动到B点&#xff0c;咱们可以玩三次多项式&#xff08;3-3-3&#xff09;或者五次多项式&…...

Qwen3.5-4B-Claude-Opus推理模型基础教程:Temperature/Top-P参数详解

Qwen3.5-4B-Claude-Opus推理模型基础教程&#xff1a;Temperature/Top-P参数详解 1. 模型概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个基于Qwen3.5-4B的推理蒸馏模型&#xff0c;特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。该模型…...

别再被ToggleGroup坑了!手把手教你写一个不自动选首项的CustomToggleGroup组件(附完整代码)

深度定制Unity ToggleGroup&#xff1a;打造无默认选中行为的智能组件 引言 在Unity UI开发中&#xff0c;ToggleGroup组件是构建选项卡式界面的常见选择&#xff0c;但许多开发者都遇到过这样的困扰&#xff1a;当ToggleGroup激活时&#xff0c;系统总会自动选中第一个Toggle项…...

中兴光猫配置解密工具:轻松破解网络限制,完全掌控家庭网络

中兴光猫配置解密工具&#xff1a;轻松破解网络限制&#xff0c;完全掌控家庭网络 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否遇到过想要修改光猫设置却找不到入…...

MultiHighlight插件深度解析:掌握代码高亮的艺术与科学

MultiHighlight插件深度解析&#xff1a;掌握代码高亮的艺术与科学 【免费下载链接】MultiHighlight Jetbrains IDE plugin: highlight identifiers with custom colors &#x1f3a8;&#x1f4a1; 项目地址: https://gitcode.com/gh_mirrors/mu/MultiHighlight 在复杂…...

注意力机制融合新范式:从GCNet与DANet看全局建模的演进与实战

1. 视觉注意力机制的进化之路 记得我第一次接触视觉注意力机制是在2016年&#xff0c;那时ResNet刚掀起深度学习的新浪潮。当时最让我困惑的是&#xff1a;为什么神经网络需要"注意力"&#xff1f;后来在ImageNet数据集上做实验时才明白&#xff0c;传统CNN就像近视眼…...

【Python张量计算实战宝典】:20年AI架构师亲授5大高频场景优化技巧,错过再等一年

第一章&#xff1a;张量计算基础与PyTorch/TensorFlow双框架选型指南张量是深度学习的核心数据结构&#xff0c;本质为多维数组&#xff0c;支持自动微分、GPU加速与动态/静态计算图构建。理解其内存布局&#xff08;如C-contiguous vs. Fortran-contiguous&#xff09;、广播机…...

从按键消抖到I2C通信:深入浅出聊聊MCU上拉/下拉电阻与开漏输出的那些坑

从按键消抖到I2C通信&#xff1a;深入浅出聊聊MCU上拉/下拉电阻与开漏输出的那些坑 在嵌入式系统开发中&#xff0c;GPIO配置看似简单&#xff0c;却暗藏玄机。记得第一次调试I2C总线时&#xff0c;通信速率始终上不去&#xff0c;最后发现竟是上拉电阻选型不当&#xff1b;另一…...

美国是如何对GEO进行监管的?

一、GEO投毒并不是中国独有 2026年央视“315”晚会首次把“GEO投毒”这一灰色产业链推到台前。所谓“投毒”&#xff0c;说白了&#xff0c;就是有人通过批量制造虚假信息、污染训练或检索数据&#xff0c;去干扰AI的推荐和回答结果&#xff0c;最后把一些虚假、低质甚至根本不…...

Wireshark抓包实战:DHCP协议交互全流程解析(附常见问题排查)

Wireshark深度解析&#xff1a;DHCP协议交互全流程与实战排错指南 从零开始理解DHCP协议的本质 想象一下&#xff0c;当你带着笔记本电脑走进一家咖啡馆&#xff0c;连接Wi-Fi的瞬间&#xff0c;设备就自动获得了上网所需的所有配置——IP地址、子网掩码、默认网关、DNS服务器。…...