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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…