LAMP 环境部署

一、概述

1. 目的

基于 CentOS 7 系统部署 LAMP(Linux + Apache + MySQL + PHP)环境的完整步骤,通过脚本化操作实现环境快速搭建,适用于运维人员进行测试环境或基础生产环境的 LAMP 部署

2. 适用环境

  • 操作系统:CentOS 7(64 位)

  • 权限要求:需使用root用户执行所有操作

  • 前置条件:

    1. 服务器已连接互联网(用于下载 YUM 源及依赖包)

    2. 以下压缩包已放置在

      /root
      

      目录下:

      • APR:apr-1.7.0.tar.gz
      • APR-Utils:apr-util-1.6.1.tar.gz
      • Apache:httpd-2.4.54.tar.gz
      • MySQL:mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
      • PHP:php-7.1.10.tar.bz2

二、部署步骤

上传5个需要的压缩包:

[root@syf ~]# rz -E
rz waiting to receive.
[root@syf ~]# rz -E
rz waiting to receive.
[root@syf ~]# rz -E
rz waiting to receive.
[root@syf ~]# rz -E
rz waiting to receive.
[root@syf ~]# rz -E
rz waiting to receive.
[root@syf ~]# ls
anaconda-ks.cfg        Music
apr-1.7.0.tar.gz       mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
apr-util-1.6.1.tar.gz  php-7.1.10.tar.bz2
Desktop                Pictures
Documents              Public
Downloads              Templates
httpd-2.4.54.tar.gz    Videos
initial-setup-ks.cfg

1. 部署 YUM 仓库

操作目的

清除系统默认 YUM 仓库配置,替换为阿里云 CentOS 7 YUM 源(提升软件下载速度),并安装 EPEL 扩展仓库(提供更多第三方软件包)

[root@syf ~]# vim lamp.sh 
#!/bin/bash
#部署yum仓库
echo "正在部署yum仓库"
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
yum -y install epel-release &>/dev/null
echo "yum仓库部署完成"
关键说明
  • &>/dev/null:将命令执行的输出(包括标准输出和错误输出)定向到空设备,实现 “静默执行”,仅在完成后提示结果

2. 安装基础工具包

操作目的

安装后续编译安装 APR、Apache、PHP 等组件所需的依赖工具(如编译器、解压工具、开发库等)

#安装基础工具包
echo "正在安装工具包,请稍等..."
yum -y install bzip2 vim make wget openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ libxml2-devel &>/dev/null
echo "基础工具包安装完成"
关键说明
  • 核心依赖说明:
    • gcc/gcc-c++:C/C++ 编译器,用于源码编译
    • openssl-devel:SSL 开发库,支持 Apache HTTPS 功能
    • pcre-devel:正则表达式库,支持 Apache URL 重写
    • bzip2:用于解压 PHP 的.bz2格式压缩包

3. 部署 APR(Apache Portable Runtime)

操作目的

APR 是 Apache 的跨平台运行时库,为 Apache 提供底层系统调用封装,必须先于 Apache 安装

#部署apr
echo "正在部署apr"
tar -xzvf /root/apr-1.7.0.tar.gz &>/dev/null
cd /root/apr-1.7.0
sed -i '/$RM "$cfgfile"/d' configure
./configure --prefix=/usr/local/apr &>/dev/null
make &>/dev/null
make install &>/dev/null
echo "apr部署完成"

4. 部署 APR-Utils

操作目的

APR-Utils 是 APR 的扩展工具库,提供数据库连接、加密等额外功能,是 Apache 的必需依赖

#部署apr-utils
echo "正在部署apr-utils"
cd /root
tar -xzvf apr-util-1.6.1.tar.gz &>/dev/null
cd /root/apr-util-1.6.1
./configure --prefix=/usr/local/apr-utils --with-apr=/usr/local/apr &>/dev/null
make &>/dev/null
make install &>/dev/null
echo "apr-utils部署完成"
关键说明
  • --with-apr=/usr/local/apr:必须指定 APR 的安装路径,确保 APR-Utils 能正确关联依赖

5. 部署 Apache(HTTP Server)

操作目的

安装 Apache Web 服务器,配置核心功能(如 SSL、URL 重写、多进程模型),并启动服务

#部署apache
echo "正在部署apache"
cd /root
tar -xzvf httpd-2.4.54.tar.gz &>/dev/null
cd /root/httpd-2.4.54
./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-utils/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork &>/dev/null
make &>/dev/null
make install &>/dev/null
/usr/local/apache/bin/apachectl start
echo "apache部署完成"
核心配置参数说明
参数作用
--prefix=/usr/local/apache指定 Apache 安装目录
--sysconfdir=/etc/httpd24指定 Apache 配置文件目录(默认在安装目录下,此处单独存放)
--enable-so启用动态模块加载功能
--enable-ssl启用 SSL 模块(支持 HTTPS)
--enable-rewrite启用 URL 重写模块(用于伪静态、域名跳转等)
--with-mpm=prefork指定 Apache 的 MPM(多进程模型)为 prefork(稳定,适合 PHP 环境)
--with-apr/--with-apr-util关联已安装的 APR 和 APR-Utils

6. 部署 MySQL 5.7

操作目的

创建 MySQL 系统用户、安装 MySQL 服务、配置数据目录、初始化数据库,并设置开机启动

6.1 创建 MySQL 系统用户
#正在部署mysql
echo "创建mysql用户"
id mysql &>/dev/null
if [ $? -eq 0 ];thenecho "mysql用户已存在"
elseuseradd -r -M -s /sbin/nologin mysqlecho "mysql用户已经创建完成"
fi
6.2 安装 MySQL 依赖
#安装依赖包
echo "正在安装依赖包"
yum -y install libncurses* &>/dev/null
echo "MySQL依赖包安装完成"
6.3 配置 MySQL 安装目录与数据目录
#配置mysql
echo "正在配置mysql"
cd /root
tar -xzvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local &>/dev/null
ln -s /usr/local/mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql
mkdir -p /opt/data
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /opt/data
6.4 初始化 MySQL 数据库
echo "正在初始化数据库"
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/ &>/dev/null
ln -s /usr/local/mysql/include /usr/local/include/mysql
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig
6.5 配置 MySQL 配置文件(my.cnf)
echo "编辑mysql配置文件"
cat > /etc/my.cnf << EOF
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
EOF
sed -ri "s#^(basedir=).*#\1/usr/local/mysql#g" /usr/local/mysql/support-files/mysql.server
sed -ri "s#^(datadir=).*#\1/opt/data#g" /usr/local/mysql/support-files/mysql.server
echo "mysql配置文件编辑完成"
6.6 配置 MySQL 系统服务(systemd)
echo "配置mysqld服务的单元文件"
cat > /usr/lib/systemd/system/mysqld.service << EOF
[Unit]
Description=mysql server daemon
After=network.targe[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP \$MAINPID[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable --now mysqld
echo "MySQL服务启动完成"
6.7 配置 MySQL 环境变量与设置密码
echo "配置mysql的环境变量"
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profileecho "正在为数据库设置密码"
read -p "请为数据库设置密码:" PASSWORD
mysql -uroot -e "set password=password('$PASSWORD')"
echo "密码设置成功"
echo "数据库部署完成"

7. 部署 PHP 7.1.10

操作目的

安装 PHP 并关联 Apache 与 MySQL,配置 PHP 运行环境,实现 Apache 对 PHP 脚本的解析

7.1 安装 PHP 依赖包
#部署php
#安装依赖包,安装GD库和GD库关联程序,用来处理和生成图片
echo "正在安装依赖包..."
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel &>/dev/null
echo "PHP依赖包安装完成"
7.2 解压 PHP 压缩包
#解压php包文件
echo "正在解压php包文件"
cd /root
tar -xjvf php-7.1.10.tar.bz2 &>/dev/null
echo "php包文件解压完成"
7.3 编译安装 PHP
#配置编译安装php
echo "正在配置编译安装php"
cd /root/php-7.1.10
./configure \--prefix=/usr/local/php \--with-apxs2=/usr/local/apache/bin/apxs \--with-mysql-sock=/tmp/mysql.sock \--with-mysqli \--with-zlib \--with-curl \--with-gd \--with-jpeg-dir \--with-png-dir \--with-freetype-dir \--with-openssl \--enable-mbstring \--enable-xml \--enable-session \--enable-ftp \--enable-pdo \--enable-tokenizer \--enable-zip &>/dev/nullmake &>/dev/null
make install &>/dev/null
echo "PHP编译安装完成"
核心配置参数说明
参数作用
--prefix=/usr/local/php指定 PHP 安装目录
--with-apxs2关联 Apache 的 apxs 工具(生成 mod_php 模块,实现 Apache 解析 PHP)
--with-mysql-sock关联 MySQL 的套接字文件(实现 PHP 与 MySQL 本地连接)
--with-gd/--with-jpeg-dir启用 GD 库(支持图片生成与处理)
--enable-mbstring启用多字节字符串支持(处理中文等非英文字符)
--enable-pdo启用 PDO 扩展(统一数据库操作接口)
7.4 配置 PHP 与 Apache
#配置php
echo "配置php"
#测试环境时使用php.ini-development文件,生产环境使用php.ini-production文件
cp php.ini-development /usr/local/php/lib/php.ini
#修改php配置文件,设置时区
sed -i 's/;date.timezone =/date\.timezone = \Asia\/Shanghai/' /usr/local/php/lib/php.ini
#修改httpd服务配置文件,让apache支持php
echo "AddType application/x-httpd-php .php" >> /etc/httpd24/httpd.conf
echo "AddType application/x-httpd-php-source .phps" >> /etc/httpd24/httpd.conf
sed  -i 's/index.html/index\.php index\.html/' /etc/httpd24/httpd.conf
7.5 创建 PHP 测试页并重启 Apache
#验证php测试页
rm -rf /usr/local/apache/htdocs/index.html
cat > /usr/local/apache/htdocs/index.php << EOF
<?php
phpinfo();
?>
EOF#启动apache服务
/usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl start
echo "PHP部署完成,Apache已重启"

三、注意事项

防火墙与 SELinux:脚本未处理防火墙和 SELinux,若无法访问 Apache,需手动关闭或配置规则:

  • 关闭防火墙:systemctl stop firewalld && systemctl disable firewalld
  • 关闭 SELinux:setenforce 0(临时),或修改/etc/selinux/configSELINUX=disabled(永久,需重启)

四、环境验证

[root@syf ~]# source lamp.sh 
正在部署yum仓库
yum仓库部署完成
正在安装工具包,请稍等...
基础工具包安装完成
正在部署apr
apr部署完成
正在部署apr-utils
apr-utils部署完成
正在部署apache
apache部署完成
创建mysql用户
mysql用户已经创建完成
正在安装依赖包
MySQL依赖包安装完成
正在配置mysql
正在初始化数据库
编辑mysql配置文件
mysql配置文件编辑完成
配置mysqld服务的单元文件
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
MySQL服务启动完成
配置mysql的环境变量
正在为数据库设置密码
请为数据库设置密码:redhat
密码设置成功
数据库部署完成
正在安装依赖包...
PHP依赖包安装完成
正在解压php包文件
php包文件解压完成
正在配置编译安装php
PHP编译安装完成
配置php
PHP部署完成,Apache已重启

在这里插入图片描述

整合脚本:

#!/bin/bash
#部署yum仓库
echo "正在部署yum仓库"
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
yum -y install epel-release &>/dev/null
echo "yum仓库部署完成"#安装基础工具包
echo "正在安装工具包,请稍等..."
yum -y install bzip2 vim make wget openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ libxml2-devel &>/dev/null
echo "基础工具包安装完成"#部署apr
echo "正在部署apr"
tar -xzvf /root/apr-1.7.0.tar.gz &>/dev/null
cd /root/apr-1.7.0
sed -i '/$RM "$cfgfile"/d' configure
./configure --prefix=/usr/local/apr &>/dev/null
make &>/dev/null
make install &>/dev/null
echo "apr部署完成"#部署apr-utils
echo "正在部署apr-utils"
cd /root
tar -xzvf apr-util-1.6.1.tar.gz &>/dev/null
cd /root/apr-util-1.6.1
./configure --prefix=/usr/local/apr-utils --with-apr=/usr/local/apr &>/dev/null
make &>/dev/null
make install &>/dev/null
echo "apr-utils部署完成"#部署apache
echo "正在部署apache"
cd /root
tar -xzvf httpd-2.4.54.tar.gz &>/dev/null
cd /root/httpd-2.4.54
./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-utils/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork &>/dev/null
make &>/dev/null
make install &>/dev/null
/usr/local/apache/bin/apachectl start
echo "apache部署完成"#正在部署mysql
echo "创建mysql用户"
id mysql &>/dev/null
if [ $? -eq 0 ];thenecho "mysql用户已存在"
elseuseradd -r -M -s /sbin/nologin mysqlecho "mysql用户已经创建完成"
fi#安装依赖包
echo "正在安装依赖包"
yum -y install libncurses* &>/dev/null
echo "MySQL依赖包安装完成"#配置mysql
echo "正在配置mysql"
cd /root
tar -xzvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local &>/dev/null
ln -s /usr/local/mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql
mkdir -p /opt/data
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /opt/dataecho "正在初始化数据库"
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/ &>/dev/null
ln -s /usr/local/mysql/include /usr/local/include/mysql
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfigecho "编辑mysql配置文件"
cat > /etc/my.cnf << EOF
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
EOF
sed -ri "s#^(basedir=).*#\1/usr/local/mysql#g" /usr/local/mysql/support-files/mysql.server
sed -ri "s#^(datadir=).*#\1/opt/data#g" /usr/local/mysql/support-files/mysql.server
echo "mysql配置文件编辑完成"echo "配置mysqld服务的单元文件"
cat > /usr/lib/systemd/system/mysqld.service << EOF
[Unit]
Description=mysql server daemon
After=network.targe[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP \$MAINPID[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable --now mysqld
echo "MySQL服务启动完成"echo "配置mysql的环境变量"
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profileecho "正在为数据库设置密码"
read -p "请为数据库设置密码:" PASSWORD
mysql -uroot -e "set password=password('$PASSWORD')"
echo "密码设置成功"
echo "数据库部署完成"#部署php
#安装依赖包,安装GD库和GD库关联程序,用来处理和生成图片
echo "正在安装依赖包..."
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel &>/dev/null
echo "PHP依赖包安装完成"#解压php包文件
echo "正在解压php包文件"
cd /root
tar -xjvf php-7.1.10.tar.bz2 &>/dev/null
echo "php包文件解压完成"#配置编译安装php
echo "正在配置编译安装php"
cd /root/php-7.1.10
./configure \--prefix=/usr/local/php \--with-apxs2=/usr/local/apache/bin/apxs \--with-mysql-sock=/tmp/mysql.sock \--with-mysqli \--with-zlib \--with-curl \--with-gd \--with-jpeg-dir \--with-png-dir \--with-freetype-dir \--with-openssl \--enable-mbstring \--enable-xml \--enable-session \--enable-ftp \--enable-pdo \--enable-tokenizer \--enable-zip &>/dev/nullmake &>/dev/null
make install &>/dev/null
echo "PHP编译安装完成"#配置php
echo "配置php"
#测试环境时使用php.ini-development文件,生产环境使用php.ini-production文件
cp php.ini-development /usr/local/php/lib/php.ini
#修改php配置文件,设置时区
sed -i 's/;date.timezone =/date\.timezone = \Asia\/Shanghai/' /usr/local/php/lib/php.ini
#修改httpd服务配置文件,让apache支持php
echo "AddType application/x-httpd-php .php" >> /etc/httpd24/httpd.conf
echo "AddType application/x-httpd-php-source .phps" >> /etc/httpd24/httpd.conf
sed  -i 's/index.html/index\.php index\.html/' /etc/httpd24/httpd.conf#验证php测试页
rm -rf /usr/local/apache/htdocs/index.html
cat > /usr/local/apache/htdocs/index.php << EOF
<?php
phpinfo();
?>
EOF#启动apache服务
/usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl start
echo "PHP部署完成,Apache已重启"

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/98049.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/98049.shtml
英文地址,请注明出处:http://en.pswp.cn/web/98049.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用html5仿造nes游戏敲玻璃写一个敲玻璃游戏

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>敲玻璃游戏</title><style>body {ma…

996引擎-ItemTips特效框层级自定义

996引擎-ItemTips特效框层级自定义 需求场景 ItemTips 中相关方法 创建特效的位置 创建特效框 核心修改 调整视图,自己加个背景,不用原来的 设置 tipsLayout_bg 的层级 结果预览 参考资料 需求场景 策划说我们的tips特效框,遮挡文字。如果按官方说的设为底层又跑到背景框后…

Java 注解与 APT(Annotation Processing Tool)

Java 注解与 APT&#xff08;Annotation Processing Tool&#xff09; 注解&#xff08;Annotation&#xff09;基础 注解是 Java 语言的一种元数据形式&#xff0c;它可以在代码中添加标记信息&#xff0c;用于描述代码的额外信息&#xff0c;但不会直接影响代码的执行逻辑。注…

Unity 检测网络-判断当前(Android/Windows平台)设备是否连接了指定WiFi

判断设备是否连接了特定的网络1.Unity 脚本2.Unity AndroidManifest.xml文件①改个设置②补充权限语句1.Unity 脚本 using UnityEngine; using System.Collections; using System.Diagnostics; using Debug UnityEngine.Debug; using UnityEngine.UI;#if UNITY_ANDROID &…

通过网络强化增强混合IT环境的安全

网络是企业运营的支柱&#xff0c;也是网络犯罪分子和恶意威胁者的主要目标&#xff0c;他们会破坏IT运营的连续性。随着混合云基础设施、远程办公和物联网&#xff08;IoT&#xff09;生态系统的出现&#xff0c;网络边界正在不断扩大&#xff0c;新的漏洞不断产生&#xff0c…

ACP(四):RAG工作流程及如何创建一个RAG应用

RAG的工作原理 你在考试的时候有可能会因为忘记某个概念或公式而失去分数&#xff0c;但考试如果是开卷形式&#xff0c;那么你只需要找到与考题最相关的知识点&#xff0c;并加上你的理解就可以进行回答了。 对于大模型来说也是如此&#xff0c;在训练过程中由于没有见过某个知…

宇视设备视频平台EasyCVR视频设备轨迹回放平台监控摄像头故障根因剖析

监控摄像头的类型繁多&#xff0c;市场上提供了广泛的选择。然而&#xff0c;在使用监控摄像头的过程中&#xff0c;用户可能会遇到云台在很短的时间内出现运转不灵或完全无法转动的问题。这里&#xff0c;我们将对这一常见问题进行深入分析。一、具体的原因&#xff1a; 1、距…

【Uni-App+SSM 宠物项目实战】Day15:购物车添加

大家好!今天是学习路线的第15天,我们正式进入订单与购物车核心模块。昨天完成了商家服务列表的分页加载,今天聚焦“购物车添加”功能——这是连接“商品浏览”与“订单提交”的关键环节,用户可将宠物用品(如粮食、玩具)加入购物车,后续统一结算。 为什么学这个? 购物车…

Java 黑马程序员学习笔记(进阶篇6)

常用的 API1. 正则表达式(1) 题目&#xff1a;贪婪爬取和非贪婪爬取① 贪婪爬取&#xff1a;爬取数据的时候尽可能的多获取数据 ② 非贪婪爬取&#xff1a;爬取数据的时候尽可能的少获取数据 ③ Java中默认的是贪婪爬取 ④ 后面加上 ? 可以转变为非贪婪爬取(2) 捕获分组捕获分…

计算机网络---数据链路层上

文章目录1. 数据链路层的功能2. 组帧2.1 字符填充法2.2 字节填充法2.3 零比特填充法2.4 违规编码2.5 总结3. 差错控制3.1 检错编码3.1.1 奇偶校验3.1.2 循环冗余校验码&#xff08;CRC&#xff09;3.1.3 总结3.2 纠错编码&#xff08;海明校验码&#xff09;3.3 总结4. 流量控制…

机器学习实战项目中,回归与分类模型中该如何科学定义目标变量Y?

前言 在机器学习项目里&#xff0c;目标变量 (Y) 的定义决定了你能解答什么问题&#xff0c;以及模型能给业务带来什么价值。选择不当不仅可能导致模型误差大、偏差严重&#xff0c;还可能让业务决策方向偏离。 本文分两大场景&#xff1a; 供应链项目中的 销量预测&#xff08…

【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 本章是动态规划算法的基础入门篇&#xff0c;我将通过三道简单题 一道中等难度的一维动态规划题来带你对动态规划有个初认识&#xff0c;并基本了解动…

深入对比Tomcat与Netty:HTTP请求从网卡到Controller的全链路追踪

我们日常用Spring Boot写的RestController&#xff0c;感觉上就是一个简单的方法&#xff0c;但它背后其实有一套复杂的网络服务在支撑。一个HTTP请求到底是怎么从用户的浏览器&#xff0c;穿过层层网络&#xff0c;最终抵达我们代码里的Controller方法的&#xff1f;理解这个过…

GO学习记录十——发包

记录下不同平台的发包操作和期间遇到的问题 1.命令&#xff1a; $env:GOOSlinux $env:GOARCHamd64 go build -o release/HTTPServices-linux第一行&#xff0c;配置平台&#xff0c;linux、windows 第二行&#xff0c;配置部署服务器的处理器架构 第三行&#xff0c;输出目标文…

贪心算法与动态规划

1. 什么是贪心算法&#xff1f; 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是全局最好或最优的算法。 核心思想&#xff1a;“每步都贪心地选择眼前最好的&#xff0c;不去考虑整个未来的长…

学会“读网页”:生成式 AI 在足球赛事信息整理中的实战

逐步教程&#xff08;Step-by-Step&#xff09; — 适合初学者与教学类文章 背景&#xff08;为什么要这样做&#xff09; 对于足球迷、资讯编辑与数据分析师来说&#xff0c;最快、最准确把握一场比赛的核心信息至关重要&#xff1a;比分、关键事件&#xff08;进球、点球、红…

BM3D 图像降噪快速算法的 MATLAB 实现

BM3D 图像降噪快速算法的 MATLAB 实现1. 快速 BM3D 算法流程&#xff08;概述&#xff09;步骤操作加速技巧① 分组块匹配 堆叠FFT 互相关② 协同滤波3D 变换 硬阈值FFT 沿第三维③ 聚合加权平均稀疏矩阵累加 2. 核心函数&#xff08;单文件版&#xff09; 保存为 bm3d_fast.…

Go的schedt调度(runtime/proc.go)

1. 创建go的入口函数// Create a new g running fn. // Put it on the queue of gs waiting to run. // The compiler turns a go statement into a call to this. func newproc(fn *funcval) {gp : getg()pc : sys.GetCallerPC()systemstack(func() {newg : newproc1(fn, gp, …

Ubuntu 服务器配置转发网络访问

配置文档&#xff1a;Ubuntu 服务器转发网络访问 一、网络拓扑以以下网络拓扑为示例Ubuntu 服务器&#xff08;两个网卡&#xff09; eth1 10.66.71.222 &#xff08;接入内网&#xff09;eno1 192.168.2.100 &#xff08;直连相机&#xff09; 相机ip 192.168.2.1 Windows 客…

为什么企业需要高防IP

1. 抵御日益猖獗的DDoS攻击 现代DDoS攻击规模已突破Tbps级别 传统防火墙无法应对大规模流量攻击 高防IP采用分布式清洗中心&#xff0c;可轻松抵御300Gbps以上的攻击流量 2. 保障业务连续性 网络中断1小时可能造成数百万损失 高防IP确保服务99.99%可用性 智能切换机制实…