LAMP 環境部署

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%可用性 智能切換機制實…