docker-wordpress遷移踩坑記錄

2021-12-25 銀河護衛隊super

 事件概述

之前在騰訊雲伺服器上搭建了一個內部wiki,使用的是docker-wordpress+docker-mysql的搭建方法,如今需要將網站遷移到本地伺服器中,這裡記錄一下操作方法以及踩的一些坑。

數據備份

首先需要將原網站的一些內容備份下來

1.資料庫備份並導出

docker exec -it mysql mysqldump -uusername -ppassword -ddatabase > /localpath/wordpress.sql備註:database為需要導出的資料庫名

2.將wordpress容器中的內容導出到本地

docker cp wordpress:/var/www/html/wp-content/ /localpath/

在新的伺服器上搭建環境

1.將鏡像拉到本地:

docker pull wordpress:latestdocker pull mysql:latest

2.運行鏡像:

2.1.首先運行mysql鏡像,這裡的mysql版本為mysql-8

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress -v mysql-data:/var/lib/mysql mysql備註:--name 為運行後的容器名,默認帳戶為root,-e MYSQL_ROOT_PASSWORD為mysql登錄密碼,並創建一個新的資料庫名為wordpress

2.2.進入容器:

docker exec -it mysql /bin/bash

2.3.登錄資料庫:

mysql -uroot -proot備註:此處密碼為-e MYSQL_ROOT_PASSWORD參數設定的密碼

2.4.修改資料庫密碼:

這時可以看到root用戶的加密方式為caching_sha2_passoword,而navicat連接所用的方式為native_password。mysql為遠程連接和本地連接提供了不同的密碼驗證方式,因此需要對驗證方式進行修改。

use mysql;select host,user,plugin from users;

備註:

1、修改遠程連接資料庫密碼:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'remotepassword';

注意:這裡修改的密碼不是上面-e MYSQL_ROOT_PASSWORD參數設定的密碼,而是建wordpress時連接資料庫的密碼,修改後登錄資料庫密碼是不會變的。

2、如果需要修改資料庫密碼:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'localpassword';

3、另外,如果之前搭過docker的mysql鏡像,且存在數據卷(volume)沒有清理的話,登錄時可能會出現密碼錯誤的情況,這是鏡像在加載時使用了現有的數據卷,需要用之前的mysql密碼登錄,不過如果之前的環境不需要了或者搭載容器失敗後想重新搭載,還是建議刪除數據卷

查看現有數據卷:

刪除數據卷:

docker volume rm volume-name

2.5.運行wordpress鏡像

docker run -d  --name wordpress --link mysql:mysql -p 8080:80 wordpress

訪問localhost:8080  這裡連接資料庫時使用的就是remotepassword,注意主機需要改為mysql(你的mysql容器名)

如果是第一次搭建wordpress的話,接下來就設置網站登錄帳號密碼就好,如果是做遷移,之後的註冊界面可以隨意填寫,成功搭建後開始導入備份

導入備份

1.導入網站備份

將本地備份文件拷貝到容器中:

docker cp /localpath/wp-content wordpress:/var/www/html/

進入wordpress容器:

docker exec -it wordpress /bin/bash

修改備份文件的權限:

chwon -R www-data:www-data wp-content

2.導入資料庫備份

將本地資料庫備份拷貝到容器中:

docker cp /localpath/wordpress.sql mysql:/

登錄資料庫:

mysql -uroot -plocalpassword

導入備份:

use wordpresssource /wordpress.sql

修改原資料庫中的連結:

UPDATE wp_options SET option_value = REPLACE(option_value,『舊地址』,『新地址』);UPDATE wp_posts SET post_content = REPLACE(post_content,『舊地址』,『新地址』);UPDATE wp_posts SET post_excerpt= REPLACE(post_excerpt,『舊地址』,『新地址』);UPDATE wp_postmeta SET meta_value = REPLACE(meta_value,'舊地址','新地址');

至此,網站遷移完畢,網站打開後會有一些配置失效,但在後臺自定義修改一下即可,背景圖片可能需要從上傳內容中重新導入,無需重新上傳,模板也可以正常加載。

記一次搭建靶場滲透過程(1)

記一次搭建靶場滲透過程(2)

記一次搭建靶場滲透過程(3)


           團隊介紹

銀河護衛隊super,是一個致力於紅隊攻防實戰、內網滲透、代碼審計、安卓逆向、安全運維等技術乾貨分享的隊伍,定期分享常用滲透工具、復現教程等資源。歡迎有想法、樂於分享的具備網際網路分享精神的安全人士進行交流學習。

點擊關注銀河護衛隊super

相關焦點

  • docker一鍵安裝wordpress,真一鍵!
    hello大家好我是key今天給大家分享一個一鍵安裝wordpress,用到的是docker,以及圖形管理界面portainer
  • Redis-Docker集群的一次踩坑記錄
    Redis-Docker集群的一次踩坑記錄項目背景線上redis的docker集群用於生產線上有一段時間,也算是一個全新的嘗試,利用docker
  • 黑蘋果踩坑記錄
    吐槽一句:這機裝的也太麻煩了叭~此處提示,由於BIOS和clover下是無法截圖的,用手機拍攝的照片難以避免摩爾紋,請做好心理準備正文開始不多說了,下面進入黑蘋果的裝機時間,大家如果有興趣想自己搞一部黑蘋果回來耍耍的話,可以參考參考我的這個記錄。
  • docker-compose 快速啟動 wordpress 搭建博客
    ### vim /etc/sysctl.confnet.ipv4.ip_forward=1### sysctl -p5.2 部署 WordPress 應用創建一個名為 wordpress 的 project(工程):[root@daniel ~]### mkdir -p /docker-compose/wordpress
  • 乾貨 | 用Docker建立本地WordPress
    拉取鏡像docker pull wordpressdocker pull mysqlMySQLdocker run--name mysql_wordpress -e MYSQL_ROOT_PASSWORD=wordpress -d mysqlWordPressdocker run --name docker_wordpress --link mysql_wordpress:mysql -p 8085:80 -d wordpress進行WordPress
  • oracle遷移Oceanbase數據遷移踩坑記(一)
    隨著國產化進度的深入,筆者所在客戶現場也開始核心業務OB遷移。對於OB數據遷移流程,先簡單介紹幾個我們熟悉和保障過程遇到的比較典型的問題。介紹問題之前先介紹下OMS遷移的流程:1>遷移前檢查。在遷移之前需要檢查源端資料庫的字符集等配置和用戶權限。2>添加數據源。
  • 如何用Docker+WordPress搭建你的博客
    當然直接用root權限使用docker太過危險,建議新建一個docker用戶,然後加入docker用戶組groupadd dockeruseradd -g docker docker後續的操作用 su docker切換到docker用戶進行。
  • GitLab-CI實現持續集成自動發布踩坑記錄
    背景:    公司為了版本統一方便管理,捨棄jenkins,擁抱Gitlab-Ci,開始踩坑。二:GitLab-Runner的安裝1:採用docker方式安裝docker run -dit \--name gitlab-runner \--restart always \-v /srv/gitlab-runner/config:/etc/gitlab-runner \
  • 用Docker-Compose一分鐘搭建Wordpress博客系統
    1.下載項目(docker-compose.yml)[root@localhost ~]# cd /home/[root@localhost home]# mkdir my_wordpress[root@localhost home]# cd my_wordpress/[root@localhost my_wordpress]# vim
  • Docker應用之一鍵化安裝Wordpress(無需代碼基礎)
    docker-compose是一個自動化工具,通過用戶配置的docker-compose.yml,一條命令就可以管理一組相關聯的docker容器。第一步:定義應用環境簡單來說就是新建一個文件夾,命名為my_wordpress。
  • 來,用docker搭建一個個人博客網站(WordPress)玩玩
    06 PST; 1h 19min ago Docs: http://docs.docker.com Main PID: 9255 (dockerd-current) Tasks: 241 Memory: 64.6M CGroup: /system.slice/docker.servicedocker run --name
  • Echarts在Taro微信小程序開發中的踩坑記錄
    ❝Echarts在Taro微信小程序開發中的踩坑記錄❞背景近期筆者在使用Taro進行微信小程序開發,當引入Echarts圖表庫時,微信檢測單包超限2M的一系列優化措施的踩坑記錄,期望能指導讀者少走一些彎路。為什麼選擇Echarts?
  • 學員分享-aspera踩坑記錄
    我想分享一下轉錄組測序準備工作到數據下載我踩的大坑,每次登錄伺服器要先激活我的小環境(時刻提醒自己),目錄管理要做好,軟體,數據,項目要分開。下面主要說說我的數據下載踩的坑,多虧了張老師的幫助讓我從這兩天的坑中跳了出來,我是用的aspera軟體下載的。
  • Docker 鏡像的備份恢復遷移
    接下來我們通過 tar 歸檔文件的方式實現鏡像的備份恢復遷移。鏡像備份使用 docker save 將指定鏡像保存成 tar 歸檔文件。docker save [OPTIONS] IMAGE [IMAGE...]
  • .NET Core項目中使用SkyWalkingAPM踩坑排坑日記
    環境說明本機開發環境:Win10 + VS2019,伺服器是 CentOS,ip:172.17.81.23Docker 方式(踩坑)安裝 Elasticsearch查看 dockerr 日誌,skywalking 連接到 elasticsearch 超時。
  • AndroidX 遷移踩坑指南!
    # 表示使用 AndroidXandroid.useAndroidX = true# 表示將第三方庫遷移到 AndroidXandroid.enableJetifier = true坑一:找不到約束布局implementation 'androidx.constraintlayout:constraintlayout
  • 在Docker Swarm模式下,Docker應用如何實現服務發現
    vagrant@node-1:~$ cd wordpress-swarmvagrant@node-1:~/wordpress-swarm$ docker stack deploy --compose-file docker-stack.yml wordpressCreating network wordpress_commonCreating service wordpress_wordpress
  • GEO踩坑記錄:subscript out of bounds
    我需要把踩坑過程和解決過程記錄下來,emmm然後就有了今天的推文😄如果你也想學習,請找到生信菜鳥團數據挖掘系列:GEO數據挖掘-第一期-膠質母細胞瘤(GBM)跟著這個文章跑代碼,突然報了一個錯(不需要示例數據了,看一看型推文😄)AssayData <- newAssayData[ID2gene$V1,]Error in newAssayData
  • 詳解Docker中Image、Container與 Volume 的遷移
    以下鏡像,均以最簡單的Alpine為例。Image鏡像的遷移,適用於離線環境。一般離線環境,都會自建Docker Registry。無論官方的,還是最近流行的Harbor,都是不錯的選擇。但是,這個世界上就是有些環境,或者說一些環境在某些時期,沒有外網,也沒有內部的Registry。這個時候要部署Docker的服務,怎麼辦?只能通
  • 白話Docker——docker run及docker-compose
    而平時用的最簡單直接的方法有兩種:直接通過docker run命令來運行單個鏡像容器。通過docker-compose文件來運行一系列鏡像容器。        下面分別介紹docker run及docker-compose。