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

我有两台阿里云上的服务器是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

三、迁移前安装包准备


docker和docker-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 and
    working. 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

<?php
   phpinfo();
?>

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows系统服务器上安装CentOS 7.9的步骤如下: 1. 下载CentOS 7.9的镜像文件。可以从CentOS官方网站或其他可信的镜像站点下载镜像文件,确保所下载的镜像文件版本正确。 2. 在Windows服务器上安装虚拟机软件,如VMware Workstation或VirtualBox。这些软件可以创建并管理虚拟机。 3. 打开虚拟机软件,并创建一个新的虚拟机。根据软件的指引,选择创建新的虚拟机,并设置虚拟机的硬件配置,如内存大小、磁盘空间等。 4. 在虚拟机软件中,将CentOS 7.9的镜像文件加载为虚拟机的安装介质。在虚拟机的设置中,选择“加载ISO镜像”选项,并选择先前下载的CentOS 7.9镜像文件。 5. 启动虚拟机,并按照指引安装CentOS 7.9。在虚拟机启动后,按照安装程序的提示选择相应的选项,如语言、时区、磁盘分区等。 6. 设置虚拟机的网络连接。在安装过程中,可以选择设置网络连接方式,如使用桥接模式或NAT模式,以便虚拟机能够在网络上正常通信。 7. 完成安装。按照安装程序的指引完成安装过程,并等待虚拟机重启。 8. 在虚拟机中设置CentOS 7.9系统。在虚拟机重启后,按照系统的指引设置用户名、密码等相关信息,并更新系统及安装必要的软件。 9. 连接CentOS 7.9虚拟机。可以使用远程桌面软件或SSH工具,通过网络连接到CentOS 7.9虚拟机,开始使用和管理该系统。 以上是在Windows系统服务器上安装CentOS 7.9的基本步骤,根据实际环境和需求,可能会有一些细节上的差异,需要根据具体情况进行调整和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值