Centos 7離線部署Nginx 高效省時

  1. 給腳本執行權限:chmod +x install_nginx.sh
  2. 以root用戶運行:sudo ./install_nginx.sh

腳本如下:

#!/bin/bash
# Nginx一鍵化部署腳本(修復版本+開機自啟)
# 需要以root權限運行set -e # 任何命令失敗時立即退出腳本# 定義彩色輸出函數
color_echo() {local color=$1shiftcase $color inred) echo -e "\033[31m$@\033[0m" ;;green) echo -e "\033[32m$@\033[0m" ;;yellow) echo -e "\033[33m$@\033[0m" ;;*) echo "$@" ;;esac
}# 步驟1: 安裝所有必需的RPM包(修復已安裝包的問題)
color_echo green "步驟1: 安裝RPM依賴包"
rpm_packages=("cpp-4.8.5-44.el7.x86_64.rpm""gcc-4.8.5-44.el7.x86_64.rpm""gcc-c++-4.8.5-36.el7.x86_64.rpm""glibc-2.17-317.el7.x86_64.rpm""glibc-common-2.17-317.el7.x86_64.rpm""glibc-devel-2.17-317.el7.x86_64.rpm""glibc-headers-2.17-317.el7.x86_64.rpm""libstdc++-devel-4.8.5-36.el7.x86_64.rpm"
)for pkg in "${rpm_packages[@]}"; do# 檢查包是否已安裝if rpm -q $(echo $pkg | cut -d- -f1-2) >/dev/null 2>&1; thencolor_echo yellow "已安裝: $pkg"elsecolor_echo green "安裝中: $pkg"rpm -ivh $pkg --nodeps >/dev/null || {color_echo red "安裝$pkg失敗"exit 1}fi
done# 步驟2: 解壓所有源碼包
color_echo green "步驟2: 解壓源碼包"
extract_files() {for file in $@; docase $file in*.tar.gz) tar -xvf $file >/dev/null ;;*.zip) unzip -o -q $file ;;*) color_echo red "未知文件類型: $file" ;;esacdone
}extract_files nginx-1.20.2.tar.gz openssl-1.1.1j.tar.gz zlib-1.3.1.tar.gz pcre-8.41.zip# 步驟3: 編譯安裝OpenSSL
color_echo green "步驟3: 編譯安裝OpenSSL"
cd openssl-1.1.1j/
./config >/dev/null || {color_echo red "OpenSSL配置失敗"exit 1
}
make >/dev/null && make install >/dev/null || {color_echo red "OpenSSL編譯安裝失敗"exit 1
}
cd ..# 步驟4: 編譯安裝PCRE
color_echo green "步驟4: 編譯安裝PCRE"
cd pcre-8.41
./configure >/dev/null || {color_echo red "PCRE配置失敗"exit 1
}
make >/dev/null && make install >/dev/null || {color_echo red "PCRE編譯安裝失敗"exit 1
}
cd ..# 步驟5: 編譯安裝zlib
color_echo green "步驟5: 編譯安裝zlib"
cd zlib-1.3.1/
./configure >/dev/null || {color_echo red "zlib配置失敗"exit 1
}
make >/dev/null && make install >/dev/null || {color_echo red "zlib編譯安裝失敗"exit 1
}
cd ..# 步驟6: 編譯安裝Nginx
color_echo green "步驟6: 編譯安裝Nginx"
# 使用當前路徑(確保路徑正確)
NGINX_PREFIX="/usr/local/nginx"
PCRE_PATH="$PWD/pcre-8.41"
OPENSSL_PATH="$PWD/openssl-1.1.1j"cd nginx-1.20.2/
color_echo yellow "配置參數:"
color_echo yellow "  --prefix=$NGINX_PREFIX"
color_echo yellow "  --with-http_ssl_module"
color_echo yellow "  --with-pcre=$PCRE_PATH"
color_echo yellow "  --with-openssl=$OPENSSL_PATH"
color_echo yellow "  --with-stream"./configure --prefix=$NGINX_PREFIX \--with-http_ssl_module \--with-pcre=$PCRE_PATH \--with-openssl=$OPENSSL_PATH \--with-stream >/dev/null || {color_echo red "Nginx配置失敗"exit 1
}make >/dev/null && make install >/dev/null || {color_echo red "Nginx編譯安裝失敗"exit 1
}
cd ..# 步驟7: 配置防火墻
color_echo green "步驟7: 配置防火墻"
systemctl stop firewalld >/dev/null 2>&1 || true
systemctl disable firewalld >/dev/null 2>&1 || true# >>>>>>>>>>> 新增:添加開機自啟功能 <<<<<<<<<<<
# 步驟8: 創建Nginx系統服務文件
color_echo green "步驟8: 設置開機自啟服務"
cat > /lib/systemd/system/nginx.service << 'EOF'
[Unit]
Description=The Nginx HTTP and reverse proxy server
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF# 重新加載systemd配置
systemctl daemon-reload# 啟動Nginx并設置開機自啟
if ! systemctl is-active nginx >/dev/null 2>&1; thencolor_echo green "啟動Nginx服務..."systemctl start nginx
ficolor_echo green "設置開機自啟..."
systemctl enable nginx >/dev/null 2>&1# 驗證服務狀態
color_echo green "檢查服務狀態..."
systemctl status nginx --no-pager | head -10color_echo green "=============================================="
color_echo green "Nginx安裝完成!"
color_echo green "安裝目錄: $NGINX_PREFIX"
color_echo green "啟動命令: $NGINX_PREFIX/sbin/nginx"
color_echo green "開機自啟: systemctl enable nginx"
color_echo green "管理命令: systemctl [start|stop|restart|status] nginx"
color_echo green "停止防火墻已生效"
color_echo green "=============================================="

安裝成功截圖:

相對應的軟件包 zip (包含所需要的依賴)

centos7離線部署Nginx高效安裝資源-CSDN文庫

或者可以私聊我? 免費提供

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/88437.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88437.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88437.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

P7915 [CSP-S 2021] 回文

題目描述 給定正整數 n n n 和整數序列 a 1 , a 2 , … , a 2 n a_1, a_2, \ldots, a_{2 n} a1?,a2?,…,a2n?&#xff0c;在這 2 n 2 n 2n 個數中&#xff0c; 1 , 2 , … , n 1, 2, \ldots, n 1,2,…,n 分別各出現恰好 2 2 2 次。現在進行 2 n 2 n 2n 次操作&#xf…

小智AI -- ESP32-S3 DIY面包板WIFI-LCD彩屏

DIY 所需硬件 開發板&#xff1a;ESP32-S3-DevKitC-1&#xff08;選擇 WROOM N16R8 模組&#xff09; Goouuu ESP32-S3-N16R8開發板數字麥克風&#xff1a;INMP441 INMP441全向麥克風模塊功放&#xff1a;MAX98357A MAX98357 I2S 音頻放大器模塊腔體喇叭&#xff1a;8Ω 2~3W 或…

家用網絡進行DNS優選

家用網絡進行DNS優選的好處主要體現在以下幾個方面&#xff1a; 提升網絡訪問速度&#xff1a; DNS優選通過選擇響應時間更快的DNS服務器&#xff0c;減少域名解析的延遲&#xff0c;從而加快網頁加載和應用訪問速度。尤其在訪問國內外網站時&#xff0c;選擇合適的DNS服務器可…

刷題 | 牛客 - js中等題-下 (更ing)45/54知識點解答

JS45 數組去重 描述 為 Array 對象添加一個去除重復項的方法 示例1 輸入&#xff1a; [false, true, undefined, null, NaN, 0, 1, {}, {}, a, a, NaN] 復制輸出&#xff1a; [false, true, undefined, null, NaN, 0, 1, {}, {}, a] Array.prototype.uniq function () …

vue3使用krpano1.22

官方文檔鏈接 https://krpano.com/docu/js/#top 例子 https://krpano.com/releases/1.22/viewer/examples/javascript-interface/js-api-examples.html https://krpano.com/viewsource.html?releases/1.22/viewer/examples/javascript-interface/js-api-examples.html 注…

2025年AI面試推薦榜單,數字化招聘轉型優選

一、AI面試為何成為2025招聘標配&#xff1f; 2025年企業對AI面試的需求從“效率工具”升級為“戰略級招聘伙伴”。數據顯示&#xff0c;超7成企業計劃年內全面引入AI面試&#xff0c;其中技術崗、全球化招聘及藍領用工場景需求增速顯著。以下以綜合技術實力、行業口碑及落地能…

人機協作新篇章:艾利特按摩機器人如何重塑健康生活

引言&#xff1a;按摩機器人的需求爆發 在快節奏的現代生活中&#xff0c;亞健康人群比例持續攀升。據《全球健康產業白皮書》顯示&#xff1a; 85%的都市人群存在肌肉勞損問題專業理療師供需缺口達1&#xff1a;3200精準按摩服務成本年均增長18% 這一背景下&#xff0c;按摩…

從代碼學習深度學習 - 情感分析:使用循環神經網絡 PyTorch版

文章目錄 前言1. 加載與預處理數據集數據讀取與詞元化構建詞匯表截斷、填充與數據迭代器2. 構建循環神經網絡模型雙向RNN模型(BiRNN)詳解權重初始化3. 加載預訓練詞向量構建詞向量加載器將預訓練向量注入模型4. 訓練與評估模型定義訓練函數可視化訓練過程5. 模型預測編寫預測…

化于無形的 lambda 語法

針對數據集合的每個成員進行計算是很常見的任務&#xff0c;用循環語句當然能實現&#xff0c;但比較麻煩&#xff0c;算個簡單的求和都要寫很多句代碼。 編程語言經常把這些運算封裝成函數&#xff0c;比如 Python 的 sum 函數&#xff0c;求訂單價格總和是這樣寫的&#xff…

day42

1. 回調函數&#xff1a;把一個函數當成“任務清單”交給另一個函數&#xff0c;等后者干完活&#xff0c;就按清單執行這個函數。比如點外賣后留電話&#xff0c;騎手送到了就打電話&#xff08;執行回調&#xff09;通知你。 2. lambda函數&#xff1a;臨時寫的超短函數&…

百度日志中臺前端重構實踐

日志中臺是百度內部針對打點數據的全生命周期管理平臺&#xff0c;作為公司日志數據的唯一入口&#xff0c;承擔以下核心職能&#xff1a;1.功能覆蓋&#xff1a;提供從數據采集、傳輸、存儲到查詢分析的一站式服務&#xff0c;支持產品運營分析、研發性能監控、運維管理等多元…

資訊安全 (Information Security)3大 “CIA“要素

資訊安全之3大要素&#xff0c;業界慣用"CIA"稱之&#xff0c;包括機密性 (Confidentiality)、完整性(Integrity)與可用性(Availability)&#xff1b;更應增加諸如鑑別性、可歸責性、不可否認性與可靠性。 1.機密性 (Confidentiality) 機密性是指採用適當的安全機制…

php后臺增加權限控制

背景 最近在對接某大廠&#xff0c;部署差不多了&#xff0c;但是在漏洞掃描環節有問題&#xff0c;前端是用vue代碼寫的。后端是php。發現前端路由可以攔截未登錄的url。但是后端php接口不用登錄就能訪問&#xff0c;很危險 解決方法 一、創建 Auth 中間件 首先創建一個專門…

跨平臺后端編程ASP.NET CORE Razor新一代Web開發框架C#

asp.net core Razor動態語言編程代替asp.net .aspx更高級嗎&#xff1f; https://blog.csdn.net/xiaoyao961/article/details/148846065 C#Blazor應用-跨平臺WEB開發VB.NET-CSDN博客 https://blog.csdn.net/xiaoyao961/article/details/148846437 Products.razor文件,Blazor和…

Storm-Pulse 全國強對流預報接口深度解析:從技術原理到防災應用(附API接入示例)

2025年6月14日安徽省氣象臺發布的強對流黃色預警中&#xff0c;合肥、阜陽等地出現了小時雨量 30-50 毫米的短時強降水和8-10級雷暴大風&#xff0c;局地甚至觀測到云閃現象。強對流天氣是指由強烈上升氣流引發的突發性、高破壞力天氣現象&#xff0c;涵蓋了短時強降水、雷暴大…

2024中國科學技術大學計算機保研上機真題

中國科學技術大學計算機保研上機真題 在線測評鏈接&#xff1a;https://pgcode.cn/problem 運動會比賽日程安排 題目描述 某運動會設立 M M M 個比賽項目&#xff0c;每個運動員&#xff08;共 N N N 個運動員&#xff09;可以參加多個項目&#xff0c;每個項目的比賽時長…

(LeetCode 面試經典 150 題) 122. 買賣股票的最佳時機 II (貪心)

題目&#xff1a;122. 買賣股票的最佳時機 II 思路&#xff1a;貪心&#xff0c;時間復雜度0(n)。 當天比前一天值大&#xff0c;就進行賣出的交易。購入是默認前一天已購入。 C版本&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int…

一篇文章了解XML

一、什么是 XML&#xff1f; XML 是一種結構化數據的標記語言&#xff0c;用來存儲、傳輸和描述數據。 它和 HTML 很像&#xff0c;但它的標簽是自定義的&#xff0c;不限定格式和外觀&#xff0c;而是強調數據的結構和含義。 XML不是用來展示數據的&#xff0c;HTML是用來展…

react經驗:i18n配置換行的富文本

應用場景 調用"useTranslations().rich"輸出換行的文本。 實施步驟 1.翻譯文件 例如:zh.json {"home":"第一行<br></br>第二行<font>加粗文本</font>" }2.調用rich處理標簽 t.rich(home, { br: () > <br /&g…

Wpf中控件作為Binding的源

1、Xaml代碼 Slider 滑動控件&#xff0c;設置了最小值0和最大值100&#xff0c;TextBox作為Binding的目標對象&#xff0c;它的Text屬性作為Binding目標的屬性&#xff0c;Binding的源的Source就是slider_test這個Slider滑動控件&#xff0c;Binding的源的Path就是slider_test…