系统迁移从CentOS7.9到Rocky8.9

news/2024/9/11 2:46:55/ 标签: docker, wordpress, rocky

我有两台阿里云上的服务器是CentOS7.9,由于CentOS7已经停止支持,后续使用的话会有安全漏洞,所以需要尽快迁移,个人使用的话目前兼容性好的还是RockyLinux8,很多脚本改改就能用了。

一、盘点系统和迁移应用


查看当前系统发行版版本

cat /etc/os-release

盘点迁移清单

服务器

应用

部署方式

docker镜像来源

v1

wordpress

docker

dockerhub

v1

zdir

docker

dockerhub

v1

nps

docker

dockerhub

v1

nginx

docker

dockerhub

v1

定时任务

crontab

-

v2

小程序后端

docker

私有仓库

v2

epg后端

docker

私有仓库

v2

nest后端

docker

私有仓库

v2

php后端

docker

私有仓库

v2

Docusaurus文档

nginx静态目录

-

二、迁移前数据备份


docker 映射目录备份

zip -r abc.zip abc


crontab定时任务备份

crontab -l >>cron.txt


docker镜像备份

docker save > nginx.tar nginx:latest 


静态目录

zip -r webroot.zip webroot

三、迁移前安装包准备


dockerdocker-compose离线安装包准备
由于docker.com从2023.5月开始无法访问,dockerhub国内镜像从2024.6开始无法访问,建议先下载好这两个离线安装包。
docker安装包
建议安装docker20及以上版本
软件包名

containerd.io-1.6.32-3.1.el8.x86_64.rpm
docker-buildx-plugin-0.14.0-1.el8.x86_64.rpm
docker-ce-26.1.3-1.el8.x86_64.rpm
docker-ce-cli-26.1.3-1.el8.x86_64.rpm
docker-ce-rootless-extras-26.1.3-1.el8.x86_64.rpm
docker-compose-plugin-2.6.0-3.el8.x86_64.rpm
docker-scan-plugin-0.9.0-3.el8.x86_64.rpm


下载地址

https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.6.32-3.1.el8.x86_64.rpm
https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-buildx-plugin-0.14.0-1.el8.x86_64.rpm
https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-scan-plugin-0.9.0-3.el8.x86_64.rpm
https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-compose-plugin-2.6.0-3.el8.x86_64.rpm
https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-ce-rootless-extras-26.1.3-1.el8.x86_64.rpm
https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-ce-cli-26.1.3-1.el8.x86_64.rpm
https://download.docker.com/linux/centos/8/x86_64/stable/Packages/docker-ce-26.1.3-1.el8.x86_64.rpm


安装命令

rpm -ivh containerd.io-1.6.32-3.1.el8.x86_64.rpm
rpm -ivh docker-ce-26.1.3-1.el8.x86_64.rpm
rpm -ivh docker-ce-cli-26.1.3-1.el8.x86_64.rpm


大部分情况只需要安装上面这三个其他rpm包按需安装。

docker-compose安装包
软件包名

docker-compose-linux-x86_64


下载地址

https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-linux-x86_64


安装命令

cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

四、备份恢复


重装系统后先将离线安装包进行安装
然后将备份的数据恢复到对应目录

unzip data.zip


对于部分目录可能需要处理权限问题(没错,说的就是wordpress
临时解决先用(docker 终端使用)

chmod -R 755 /var/www/html
chown -R www-data:www-data /var/www/html/


后续迁移还是tar.gz包吧,至少权限不会丢,zip经常丢权限,755这个可能不需要执行。

五、迁移后的问题

目前迁移后的wordpress总是挂掉,然后带着服务器一起挂掉,排查之后发现是官方wordpress使用了apache的问题。所以花了点时间打了个nginx版本的镜像。这个镜像不含推荐组件里的webpack,其他组件都包含

Dockerfile

# 更改基础镜像为PHP 8.x FPM Alpine
FROM php:8-fpm-alpine# 更新并安装PHP依赖,注意检查扩展与PHP 8.x的兼容性
RUN apk update && \apk add zlib-dev libpng-dev jpeg-dev expat-dev libzip-dev icu-libs icu-dev && \apk add m4 autoconf make gcc g++ linux-headers && \docker-php-ext-install pdo_mysql opcache mysqli && \docker-php-ext-install gd && \docker-php-ext-install exif zip intl && \apk del m4 autoconf make gcc g++ linux-headers# 安装nginx依赖
RUN apk add nginx && \if [ ! -d "/run/nginx" ]; then mkdir /run/nginx; fi && \touch /run/nginx/nginx.pid# nginx配置文件和初始静态文件
ADD default.conf /etc/nginx/http.d/default.conf
ADD index.html /var/www/html/index.html# 安装wget unzip tar 后续下载wordpress使用
RUN apk add --no-cache wget unzip tar
# 下载并解压 WordPress
RUN wget https://wordpress.org/latest.tar.gz -O /tmp/wordpress.tar.gz && \tar zxvf /tmp/wordpress.tar.gz -C /tmp/ && \mv /tmp/wordpress/* /var/www/html && \rm /tmp/wordpress.tar.gz# 拷贝源代码到容器内
COPY src /var/www/html/# 更改/var/www/html目录的所有权
RUN apk add coreutils  && \chown -R www-data:www-data /var/www/html# 添加自定义脚本
ADD run.sh /
RUN chmod 755 /run.sh# 暴露端口
EXPOSE 80
EXPOSE 9000# 入口点设置为自定义脚本
ENTRYPOINT ["/run.sh"]

default.conf

server {listen 80;server_name localhost;root /var/www/html;index index.php index.html index.htm index.nginx-debian.html;error_log  /var/log/nginx/error.log;access_log /var/log/nginx/access.log;location / {try_files $uri $uri/ /index.php?$args;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}# 新增规则来保护以点号开头的隐藏文件location ~ /\. {deny all;}location ~ /\.ht {deny all;}location = /favicon.ico {log_not_found off;access_log off;}location = /robots.txt {allow all;log_not_found off;access_log off;}location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {expires max;log_not_found off;access_log off;}
}

index.html

<!DOCTYPE html>
<html>
<head><title>Welcome to nginx!</title><style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.</p><p>For online documentation and support please refer to<a href="http://nginx.org/">nginx.org</a>.<br/>Commercial support is available at<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

run.sh

#!/bin/sh# 后台启动
php-fpm -D
# 关闭后台启动,hold住进程
nginx -g 'daemon off;'

src/info.php

<?phpphpinfo();
?>


http://www.ppmy.cn/news/1474559.html

相关文章

聚观早报 | 蚁天鉴2.0发布;理想汽车推送无图NOA

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 7月8日消息 蚁天鉴2.0发布 理想汽车推送无图NOA 特斯拉推送FSD v12.4.3 iQOO Neo9s Pro配色公布 百川智能AI健康…

centos9中mysql指令提示解决方案

CentOS 9 中没有 MySQL 的官方插件&#xff0c;因为 MySQL 不是 CentOS 的默认数据库&#xff0c;它是 MariaDB 的一部分。 如果想要一个命令行提示的 MySQL 客户端&#xff0c;可以使用第三方工具 &#xff0c;如mycli 首先&#xff0c;确保已经安装了 MySQL&#xff0c;且操…

7月10日学习打卡,环形链表+栈OJ

前言 大家好呀&#xff0c;本博客目的在于记录暑假学习打卡&#xff0c;后续会整理成一个专栏&#xff0c;主要打算在暑假学习完数据结构&#xff0c;因此会发一些相关的数据结构实现的博客和一些刷的题&#xff0c;个人学习使用&#xff0c;也希望大家多多支持&#xff0c;有…

解决鸿蒙开发中克隆项目无法签名问题

文章目录 问题描述问题分析解决方案 问题描述 在一个风和日丽的早晨&#xff0c;这是我学习鸿蒙开发的第四天&#xff0c;把文档过了一遍的我准备看看别人的项目学习一下&#xff0c;于是就用git去clone了一个大佬的开源项目&#xff0c;在签名的时候遇到了问题&#xff1a; h…

Visual Studio编译优化选项

目录 /O1 和 /O2 /Ox 内联函数 虚函数优化 代码重排 循环优化 链接时间优化 代码分割 数学优化 其他优化选项 在Visual Studio中&#xff0c;编译优化选项是用于提高程序性能的重要工具。编译器提供了多种优化级别和选项&#xff0c;可以根据不同的需要进行选择。 在…

(Windows环境)FFMPEG编译,包含编译x264以及x265

本文使用 MSYS2 来编译 ffmpeg 一、安装MSYS2 MSYS2 是 Windows 下的一组编译套件&#xff0c;它可以在 Windows 系统中模拟 Linux 下的编译环境&#xff0c;如使用 shell 运行命令、使用 pacman 安装软件包、使用 gcc (MinGW) 编译代码等。 MSYS2 的安装也非常省心&#x…

如何在vue的项目中导入阿里巴巴图标库

阿里巴巴矢量图标库官网&#xff1a;iconfont-阿里巴巴矢量图标库 选择你喜欢的图标&#xff0c;添加入库 点击添加至项目&#xff0c;并新建文件夹&#xff0c;点击确定 选择font-class&#xff0c;点击生成代码 代码生成后&#xff0c;在网站上打开 全选复制到style 点击复制…

大连外贸建站公司wordpress主题模板

Robonaut萝卜纳特WP外贸站模板 适合用于工业机器人公司出口做外贸搭建公司官方网站使用的WordPress模板。 https://www.jianzhanpress.com/?p7091 优衣裳WordPress外贸建站模板 简洁的wordpress外贸独立站模板&#xff0c;适合服装、衣服、制衣外贸公司搭建公司官方网站使用…

【Python】Requests 库使用示例

本文使用Pythonrequests库对微博页面进行数据抓取和简单的数据清洗 使用Requests库进行网络爬虫 requests是一个Python的HTTP客户端库&#xff0c;用于发送HTTP请求。它简单易用&#xff0c;同时提供了足够的功能来处理各种网络请求。 1. 安装requests库 在Python中安装req…

【集成平台】大数据集成平台建设方案(原件word)

基础支撑平台主要承担系统总体架构与各个应用子系统的交互&#xff0c;第三方系统与总体架构的交互。需要满足内部业务在该平台的基础上&#xff0c;实现平台对于子系统的可扩展性。基于以上分析对基础支撑平台&#xff0c;提出了以下要求&#xff1a; 基于平台的基础架构&…

从 Github 安装 R packages 不完全指南

前言 R语言&#xff0c;一个被广泛使用的统计计算和数据分析工具。在日常使用过程中&#xff0c;需要安装实现各种功能、来自各种渠道的工具包&#xff08;packages&#xff09;比如&#xff1a;CRNA或者Github。很多包已经发布在 CRAN 上&#xff0c;使用 install.packages(&q…

【JavaScript脚本宇宙】提升用户体验:探索 JavaScript 库中的浏览器特性支持检测

深入探讨JavaScript库&#xff1a;功能、配置与应用场景 前言 在现代的Web开发中&#xff0c;JavaScript库扮演着至关重要的角色&#xff0c;帮助开发人员简化代码、提高效率、实现更好的用户体验。本文将探讨几个常用的JavaScript库&#xff0c;包括模块加载库、数据绑定库和…

JMeter之脚本录制

前言&#xff1a; 对于一些JMeter初学者来说&#xff0c;录制脚本可能是最容易掌握的技能之一。虽然我不建议录制性能脚本&#xff08;因为录制的脚本比较混乱&#xff0c;必须要通过二次处理才可正常使用&#xff09;&#xff0c;但有时做总比不做要好&#xff0c;是吧…

安卓微信8.0之后如何利用缓存找回的三天之前不可见的朋友圈图片

安卓微信8.0之后如何利用缓存找回的三天之前不可见的朋友圈图片 复习了下安卓程序的知识&#xff0c;我们会了解到&#xff0c;安卓程序清楚数据的时候有两个选项 一个是清除全部数据一个是清除缓存。 清除全部数据表示清除应用数据缓存。 对于安卓微信8.0之后而言&#xff0…

判断对象能否回收的两种方法,以及JVM引用

判断对象能否回收的两种方法&#xff1a;引用计数算法&#xff0c;可达性分析算法 引用计数算法&#xff1a;给对象添加一个引用计数器&#xff0c;当该对象被其它对象引用时计数加一&#xff0c;引用失效时计数减一&#xff0c;计数为0时&#xff0c;可以回收。 特点&#xf…

Spring Boot中的数据迁移策略

Spring Boot中的数据迁移策略 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 一、引言 在软件开发的过程中&#xff0c;经常会遇到需要修改数据库结构、迁移…

ES6 Class(类) 总结(九)

ES6 中的 class 是一种面向对象编程的语法糖&#xff0c;提供了一种简洁的方式来定义对象的结构和行为。 JavaScript 语言中&#xff0c;生成实例对象的传统方法是通过构造函数。下面是一个例子。 function Point(x, y) {this.x x;this.y y; } Point.prototype.toString fu…

【ARMv8/v9 GIC 系列 5.8 -- SPI 中断路由到指定的 core 详细介绍】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 SPI 中断路由配置寄存器字段代码示例Usage scenarioSPI 中断路由配置 在ARMv8和ARMv9架构下,当启用亲和性路由(Affinity Routing)时,系统寄存器GICD_IROUTER<n>用于提供具有INTID n的SPI的路由信息。n的最大值由公式(32*…

精益化供应链,或许才是丰田的核心竞争力!

在汽车产业这个竞争激烈的战场上&#xff0c;丰田总能凭借其卓越的品质和高效的生产能力独领风骚。而在这背后&#xff0c;一个鲜为人知的秘密武器——精益化供应链&#xff0c;正是丰田能够长期保持领先地位的核心竞争力。 一、精益化供应链 丰田的精益化供应链管理理念&…

react 组件通信 —— 父子传值 【 函数式/类式 】

1、函数式组件通信 父子间通信 —— 父传子 父组件 export default function father() {return (<div style{{width:400px,height:200px,background:pink,marginLeft:500px}}>我是父组件<hr /><Son name{"韩小刀"}/></div>) } 子组件 ex…