系統遷移從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 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.pswp.cn/web/41126.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41126.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41126.shtml

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

相關文章

AI在軟件開發中的革新與未來挑戰

目錄 前言 AI工具的廣泛應用與優勢 AI與開發者技能需求的互動關系 AI的未來展望與面臨的挑戰 結語 前言 在當今快速發展的技術領域中&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;正以前所未有的方式改變著軟件開發的面貌。從代碼生成到錯誤檢測&#xff0c;再…

linux內核源碼學習所需基礎

1.面向對象的思想&#xff0c;尤其是oopc的實現方式。 2.設計模式。 這兩點需要內核源碼學習者不僅要會c和匯編&#xff0c;還要接觸一門面向對象的語言&#xff0c;比如c&#xff0b;&#xff0b;/java/python等等任意一門都行&#xff0c;起碼要了解面向對象的思想。 另外li…

MyBatis 框架核心及面試知識要點

1、什么是 MyBatis? MyBatis 是一款優秀的支持自定義 SQL 查詢、存儲過程和高級映射的持久層框架&#xff0c;消除了 幾乎所有的 JDBC 代碼和參數的手動設置以及結果集的檢索 。 MyBatis 可以使用 XML,或注解進 行配置和映射&#xff0c;MyBatis 通過將參數映射到配置的 SOL,形…

FastSpeech2中文語音合成就步解析:TTS數據訓練實戰篇

參考github網址&#xff1a; GitHub - roedoejet/FastSpeech2: An implementation of Microsoft’s “FastSpeech 2: Fast and High-Quality End-to-End Text to Speech” 數據訓練所用python 命令&#xff1a; python3 train.py -p config/AISHELL3/preprocess.yaml -m confi…

ida動態調試-cnblog

ida動態調試 傳遞啟動ida服務 android_server在ida\dbgsrv目錄中 adb push android_server /data/local/tmp/chmod 755 /data/local/tmp/android_server /data/local/tmp/android_serveradb forward tcp:23946 tcp:23946ida報錯:大多是手機端口被占用 報錯提示&#xff1a; …

java面試-java基礎(下)

文章目錄 一、和equals區別&#xff1f;二、hashcode方法作用&#xff1f;兩個對象的hashCode方法相同&#xff0c;則equals方法也一定為true嗎&#xff1f;三、為什么重寫equals方法就一定要重寫hashCode方法&#xff1f;四、Java中的參數傳遞時傳值呢還是傳引用&#xff1f;五…

期末上分站——計組(3)

復習題21-42 21、指令周期是指__C_。 A. CPU從主存取出一條指令的時間 B. CPU執行一條指令的時間 C. CPU從主存取出一條指令的時間加上執行這條指令的時間。 D. 時鐘周期時間 22、微型機系統中外設通過適配器與主板的系統總線相連接&#xff0c;其功能是__D_。 A. 數據緩沖和…

數據庫可視化管理工具dbeaver試用及問題處理。

本文記錄了在內網離線安裝數據庫可視化管理工具dbeaver的過程和相關問題處理方法。 一、下載dbeaver https://dbeaver.io/download/ 筆者測試時Windows平臺最新版本為&#xff1a;dbeaver-ce-24.1.1-x86_64-setup.exe 二、安裝方法 一路“下一步”即可 三、問題處理 1、問…

【深度學習】vscode 命令行下的debug

其實我一直知道vscode可以再命令行下進行debug。 比如 python aaa.py --bb1 --cc2 以前的做法是 去aaa.py 寫死bb和cc 然后直接debug。 直到今天我遇到這個&#xff1a; hydra hydra.main(version_baseNone, config_name/home/justin/Desktop/code/python_project/WASB-SBDT-m…

Truffle學習筆記

Truffle學習筆記 安裝truffle, 注意: 雖然目前truffle最新版是 5.0.0, 但是經過我實踐之后, 返現和v4有很多不同(比如: web3.eth.accounts; 都獲取不到賬戶), 還是那句話: “nodejs模塊的版本問題會搞死人的 !” 目前4.1.15之前的版本都不能用了, 只能安裝v4.1.15 npm instal…

新手學Cocos報錯 [Assets] Failed to open

兩個都在偏好設置里面調&#xff08;文件下面的偏好設置&#xff09;&#xff1a; 1.設置中文&#xff1f; 2.報錯 [Assets] Failed to open&#xff1f; 這樣在點擊打開ts文件的時候就不會報錯&#xff0c;并且用vscode編輯器打開了&#xff0c; 同樣也可以改成你們自己喜歡…

LabVIEW在圖像處理中的應用

abVIEW作為一種圖形化編程環境&#xff0c;不僅在數據采集和儀器控制領域表現出色&#xff0c;還在圖像處理方面具有強大的功能。借助其Vision Development Module&#xff0c;LabVIEW提供了豐富的圖像處理工具&#xff0c;廣泛應用于工業檢測、醫學影像、自動化控制等多個領域…

Apache Seata應用側啟動過程剖析——RM TM如何與TC建立連接

本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 Apache Seata應用側啟動過程剖析——RM & TM如何與TC建立連接 前言 看過官網 README 的第…

Android最近任務顯示的圖片

Android最近任務顯示的圖片 1、TaskSnapshot截圖1.1 snapshotTask1.2 drawAppThemeSnapshot 2、導航欄顯示問題3、Recentan按鍵進入最近任務 1、TaskSnapshot截圖 frameworks/base/services/core/java/com/android/server/wm/TaskSnapshotController.java frameworks/base/cor…

IPython 性能評估工具的較量:%%timeit 與 %timeit 的差異解析

IPython 性能評估工具的較量&#xff1a;%%timeit 與 %timeit 的差異解析 在 IPython 的世界中&#xff0c;性能評估是一項至關重要的任務。%%timeit 和 %timeit 是兩個用于測量代碼執行時間的魔術命令&#xff0c;但它們之間存在一些關鍵的差異。本文將深入探討這兩個命令的不…

2786. 訪問數組中的位置使分數最大

2786. 訪問數組中的位置使分數最大 題目鏈接&#xff1a;2786. 訪問數組中的位置使分數最大 代碼如下&#xff1a; //參考鏈接:https://leetcode.cn/problems/visit-array-positions-to-maximize-score/solutions/2810335/dp-by-kkkk-16-tn9f class Solution { public:long …

vue-router 4匯總

一、vue和vue-router版本&#xff1a; "vue": "^3.4.29", "vue-router": "^4.4.0" 二、路由傳參&#xff1a; 方式一&#xff1a; 路由配置&#xff1a;/src/router/index.ts import {createRouter,createWebHistory } from &quo…

探索 WebKit 的緩存迷宮:深入理解其高效緩存機制

探索 WebKit 的緩存迷宮&#xff1a;深入理解其高效緩存機制 在當今快速變化的網絡世界中&#xff0c;WebKit 作為領先的瀏覽器引擎之一&#xff0c;其緩存機制對于提升網頁加載速度、減少服務器負載以及改善用戶體驗起著至關重要的作用。本文將深入探討 WebKit 的緩存機制&am…

代碼隨想錄leetcode200題之額外題目

目錄 1 介紹2 訓練3 參考 1 介紹 本博客用來記錄代碼隨想錄leetcode200題之額外題目相關題目。 2 訓練 題目1&#xff1a;1365. 有多少小于當前數字的數字 解題思路&#xff1a;二分查找。 C代碼如下&#xff0c; class Solution { public:vector<int> smallerNumb…

卷積神經網絡(CNN)和循環神經網絡(RNN) 的區別與聯系

卷積神經網絡&#xff08;CNN&#xff09;和循環神經網絡&#xff08;RNN&#xff09;是兩種廣泛應用于深度學習的神經網絡架構&#xff0c;它們在設計理念和應用領域上有顯著區別&#xff0c;但也存在一些聯系。 ### 卷積神經網絡&#xff08;CNN&#xff09; #### 主要特點…