原本家裏WordPress系統是自行用Apache+MySQL在CentOS 7下架設,也一直運行順利。不過,考慮到未來的移植性,似乎還是要用Docker Container較為方便。在這樣的想法下,上週末便參考網路資料把docker-compose.yml給寫好,並且執行起來。一行指令Docker Container們便一一自己開始運行起來,而我也把MySQL的Container指給原先的資料庫路徑。接著,用Browser連上網站,連不進去,再用Adminer看一下資料庫,居然回應帳密不對,不讓我登入資料庫,這下麻煩了。弄了一天無果,內心煩燥,於把先把這件事給放下。直到今天早上,精神滿滿著手處理這件事。先爬了網路文章,又做了很多實驗,總算把我的WordPress給弄回來了,並且把MySQL、WordPress、Memcache全都Docker化。由於家裏的SSL是透過ngrok的轉址要做Reverse Proxy跟Load Balancing有點複雜,還沒有試成功,等有空再研究了。
花了很多爬文跟實驗的時間,所以想把這些做法寫下來,除了自己備忘之外,如果有機會可以幫到其他人,也算好事一件。
WordPress 搬家 – 同樣的Domain Name
如果是同樣Domain Name(e.g.www.abc.com) 還原WordPress相對容易很多,因為UpdraftPlus外掛可以直接無痛使用。如果不同Domain Name,直接硬還原的話,系統會無法正常執行。原因是,WordPress很多資料都連帶網站Domain Name直接寫入資料庫中,如果直接還原,資料庫裏面舊路徑跟新路徑會不一樣,就抓不到資料。基本上,UpdraftPlus外掛也有辦法解決,只是要花錢錢額外買加值功能。
檔案需求:原網站透過UpdraftPlus備份的5個檔案
處理方式:透過UpdraftPlus外掛
- 安裝完WordPress之後,先用一個隨便的使用者帳號跟email註冊,以能先進到WordPress後台為優先。
- 安裝UpdraftPlus外掛
- 把5個備份檔案通通拉進來,然後還原系統。
WordPress 搬家 – 不同的Domain Name
不同Domain Name如果要比較簡單搬家,可以參考UpdraftPlus的加值功能。以下介紹是配合UpdraftPlus免費版加上一些手動修改的免費方式。
檔案需求:原網站透過UpdraftPlus備份的5個檔案
處理方式:透過Updraft外掛+手動修改資料庫
- 安裝完WordPress之後,先用一個隨便的使用者帳號跟email註冊,以能先進到WordPress後台為優先。
- 安裝UpdraftPlus外掛,並且啟用。
- 手動修改資料庫備份檔
- 將原先備份檔案中名稱為backup_2021-05-30-1541_xxxxxx_xxxx-db.gz,這個檔案資料庫備份檔解壓縮,解壓縮的方式可以用指令或是一些能解gzip的軟體都行。解壓縮完成後,檔案名稱會變成backup_2021-05-30-1541_xxxxxx_xxxx-db。
- 用您個人熟悉的文字編輯器打開backup_2021-05-30-1541_xxxxxx_xxxx-db這個檔案。文字編輯器要有搜尋跟取代功能。
- 假設舊的網址是www.old.com,新的網址叫www.new.com(或是local測試的ip也可以,如192.168.50.200:8077)。在文字編輯器搜尋https://www.old.com或是http://www.old.com,端看您之前舊的網址是http或https。
- 找到之後,全部取代為//www.new.com。(這裏是沒有http:的)
- 搜尋siteurl,應該會找到類似以下字串 INSERT INTO `wp_options` VALUES (1, ‘siteurl’, ‘//www.new.com’, ‘yes’)。將//www.new.com的http或https加回去。
- 下一行文字應該會類似以下字串(2, ‘home’, ‘//www.new.com’, ‘yes’)。一樣將http或https加回去。
- 存檔
- 用壓縮軟體,選擇gzip格式,再把backup_2021-05-30-1541_xxxxxx_xxxx-db檔案壓回backup_2021-05-30-1541_xxxxxx_xxxx-db.gz。
- 還原備份檔
- 進到WordPress後台,在UpdraftPlus外掛中,把剛才改的這個資料庫backup_2021-05-30-1541_xxxxxx_xxxx-db.gz拉進去,接著再把其他4個備份檔也拉進來。
- 選取還原這5個檔案。
- 登入http://www.new.com。因為整個網站還原回來,所以登入的使用者跟帳號就要用原本的資料,而不是一開始亂打的使用者資料。確定可以登入後台之後,看一下外掛運行有沒有問題,有沒有其他狀況需要排除的,就一一解決。例如,是否您的WordPress有用到local的資源連結目錄(圖檔,影片,…),如果有的話,這部分的local路徑都要確認一下,才會使原先WordPress網站能順利運作。
參考網站
https://daotw.com/wordpress%E6%95%99%E5%AD%B8/#10
https://www.vedfolnir.com/wordpress-login-loop-and-redirect-error-in-multisite-network-27163.html