银河麒麟服务器V10(x86_64)离线环境全栈部署指南:MySQL5.7+nginx+nodejs+php实战

1. 为什么要在离线环境折腾全栈部署?

最近接手了一个项目,客户那边用的是银河麒麟服务器V10,x86_64架构,最关键的是,服务器完全处于内网隔离状态,一根外网线都接不进去。客户的需求很明确:要在上面搭一套完整的Web应用环境,数据库用MySQL5.7,Web服务器用nginx,后端跑Node.js,还有些老的管理页面需要PHP支持。这场景听起来是不是挺有挑战性?没错,这就是典型的国产化环境下的离线部署需求,在金融、政务、军工这些对安全要求极高的领域特别常见。

你可能觉得,现在都云原生、容器化了,谁还折腾离线安装啊?但现实是,在很多关键行业,物理隔离是硬性要求。服务器就像一座“信息孤岛”,所有软件、依赖包都得靠我们手动“搬运”进去。这个过程,说白了,就是跟操作系统底层依赖和各种编译环境“斗智斗勇”。我刚开始也踩了不少坑,比如明明在CentOS上几分钟搞定的东西,在麒麟上因为一个依赖库的版本问题就能卡半天。所以,今天我就把自己在银河麒麟V10上,从零开始搭建MySQL5.7、nginx、Node.js和PHP全栈环境的实战经验,掰开揉碎了分享给你。我会尽量避开那些晦涩的理论,用最直白的语言和一步步的操作命令,让你即使没接触过麒麟系统,也能跟着做下来。我们的目标就一个:在断网的情况下,把这一整套环境稳稳当当地跑起来。

2. 动手前的准备工作:理清思路与备齐“粮草”

打仗之前,得先清点弹药粮草。离线部署更是如此,一旦开始,可没有yum install一键下载的便利了。所以,准备工作做得好,能省去后面至少80%的麻烦。

首先,你得搞清楚你的“战场”环境。我这次用的是Kylin Linux Advanced Server V10 (Sun)x86_64架构。你可以在终端里用 cat /etc/os-releaseuname -m 这两个命令来确认自己的系统版本和架构,千万别搞错了,ARM架构和x86的安装包可是完全不兼容的。

接下来是几项必须做的系统级准备工作,这步不能省:

  1. 关闭并禁用防火墙:在调试阶段,防火墙可能会阻挡我们的服务端口,先关掉它让部署更顺畅。当然,生产环境后期需要根据安全策略再严格配置。

    systemctl stop firewalld  # 立即停止防火墙
    systemctl disable firewalld # 禁止防火墙开机自启
    
  2. 清理潜在的软件冲突:银河麒麟系统默认可能会安装一些与MySQL冲突的数据库,比如MariaDB。我们必须提前清理干净,不然安装MySQL时会报各种依赖错误。

    # 查看是否安装了mariadb相关的包
    rpm -qa | grep mariadb
    # 如果上面命令有输出,比如看到了 mariadb-libs,就用力删除它(假设包名是mariadb-libs)
    rpm -e --nodeps mariadb-libs
    

    同样,检查一下是否有旧版的MySQL残留:

    rpm -qa | grep mysql
    # 如果有,也用同样的方式删除
    
  3. 准备好所有离线安装包:这是离线部署的核心。你需要在一台有网络的、相同操作系统版本的机器上(或者虚拟机里),提前下载好所有需要的软件包和它们的依赖。包括:

    • MySQL 5.7 的RPM安装包(通常包括 mysql-community-server, mysql-community-client, mysql-community-libs 等)。
    • Node.js 的RPM安装包。
    • Nginx 的RPM安装包。
    • PHP及其常用扩展(如 php-fpm, php-mysqlnd 等)的RPM安装包。
    • 一个完整的系统ISO镜像:这是我们的“救命稻草”,因为很多基础依赖包(比如 gcc, make, openssl-devel)都可以从系统镜像里获取。去麒麟官方渠道下载和你服务器版本完全一致的ISO文件。
  4. 传输工具:你需要一个可靠的SSH工具(比如Xshell、FinalShell、MobaXterm)来连接服务器,并用它的SFTP功能把刚才准备好的那一大堆安装包和ISO镜像上传到服务器上。别指望用U盘拷,对于服务器来说,SSH才是最稳的通道。

把这些东西都备齐了,我们心里就有底了。接下来,就要开始构建我们离线部署中最关键的基础设施——本地YUM仓库。

3. 搭建生命线:配置本地YUM源仓库

在离线环境里,系统镜像就是我们唯一的“软件应用商店”。配置本地YUM源,就是把系统ISO镜像里的所有安装包,变成一个本地的、可用的软件仓库。这样,我们后续安装nginx、PH

「LLM那些事」系列第 4 篇《上下文窗口的边界》,文章连接:https://blog.csdn.net/houwenjin/article/details/163999753。 演示什么:在「预测」Sheet 的黄色格子里输入一句话(默认「来泡一杯」),四个「模型」——分别只统计最后 1 / 2 / 3 / 4 个字的 n-gram 查表——同时预测下一个字。同一个输入,看的上下文越长,候选越少、预测越确定: ┌────────────────┬──────────┬───────────────┬──────┐ │ 只看最后几个字 │ 用的前缀 │ 候选下一字数 │ 预测 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 1 个 │ 杯 │ 3(茶/子/水) │ 模糊 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 2 个 │ 一杯 │ 2(茶/水) │ 收窄 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 3 个 │ 泡一杯 │ 1(茶) │ 确定 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 4 个 │ 来泡一杯 │ 1(茶) │ 确定 │ └────────────────┴──────────┴───────────────┴──────┘
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 笔记本的散热风扇管理 ---------------------------------------- 09 November 2006. 对于版本20061109的变更概述如下: 1) ACPI CA核心子系统:在源操作数是一个操作区域的场景下,对负载ASL操作符进行了优化。仅需映射操作区域内存,而不是执行逐字节读取。 (区域必须为SystemMemory类型,见下文。)修正了源操作数为区域字段的负载ASL操作符问题。也允许缓冲区对象作为源操作数。 BZ 480 解决了负载ASL操作符允许源操作数为任意类型操作区域的问题。现被限制为仅SystemMemory类型的区域,符合ACPI规范。 BZ 481 对新表管理器代码进行了额外的清理和优化。AcpiEnable将在所有必需的ACPI表未加载时失败(FADT, FACS, DSDT)。 BZ 477 在acobject.h中添加了#pragma pack(8/4),以确保此头文件中的结构始终编译为对齐。ACPI_OPERAND_OBJECT已被手动优化为对齐,并在字节打包时无法工作。示例代码和数据大小:这些是Microsoft Visual C++ 6.0 32位编译器生成的、与操作系统无关的acpica.lib的大小。调试版本的代码包含调试输出跟踪机制,具有更大的代码和数据大小。上一个版本:非调试版本:78.1K代码,17.1K数据,95.2K总计 调试版本:155.4K代码,63.1K数据,218.5K总计 当前版本:非调试版本:77.9K代码,17.0K数据,94.9K总计 调试版本:155.2K代码,63.1K数据,...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值