You are currently viewing WordPress Multisite 子網站搬移

WordPress Multisite 子網站搬移

當我們的網站是架設在WordPress Multisite多站網站子網站架構下的網站,而有一天我們要將它搬移到其他的多站網站的子網站(或是變成單一網站的網站),我這邊有測試可以這樣做,就可以完整的搬移成功。

這裡若不知道怎麼備份檔案,可以直接使用 UpdraftPlus 這個外掛,將全部的檔案備份起來,再下載下來。不過下載後的資料需要個別處理一下。主要需處理的有三個資料夾,分別是plugins、themes及uploads。

匯出個別網站的資料表

要執行這個步驟,你需要有資料庫的存取權限。一般來說,大多數的共享主機都會提供 phpMyAdmin 這款輔助工具,協助網站管理員透過圖形介面來存取資料庫。

進入 phpMyAdmin 後,會發現除了預設的資料表前綴 wp_ 外,有些資料表出現了 wp_2、wp_3 等編號。這些就是個別網站的 Site ID,可以在多站網路的主控制台檢視。

接著,點選上方選單中的 [匯出],準備匯出資料表。這邊記得選取 [自訂],這樣才能選取個別資料表。這時,如果要匯出的是主要網站,那麼只要勾選全部的 wp_xxxx 資料表並匯出就可以了;而如果是其他子網站,就根據網站 ID (Site ID) 去勾選對應的資料表。然後再點選執行。

整理外掛檔案、佈景主題與已上傳媒體

在第一個步驟,我們使用UpdraftPlus 外掛匯出的檔案後,需要分別處理一下相關的檔案。

plugins資料夾:需確認你在多站網站中的外掛有安裝並啟用哪一些,需要留下這些外掛。步驟就是先解壓縮plugins.zip檔案,再從中刪除其他沒有安裝的外掛,留下你原本網站有啟用的外掛。確認完成後,再壓縮成.zip檔案。

themes資料夾:比照plugins外掛資料夾處理方式,一樣也是先解壓,再進去資料夾將你啟用的主題留下,其他可以刪除,再壓縮成.zip檔。

uploads資料夾:這個資料夾比較需要注意一下,因為你原來安裝在多站網站中的子網站,所以你的網站會有一個編號 Site ID,這時你在解uploads壓縮資料夾後,可以看到它資料夾的架構為

uploads\sites\site_id\

例如我原來的子網站編號是42,它的路徑就的是

uploads\sites\42\

這時候,我們要因應不同的搬移網站目標,有不同的處理方式。若是搬移到另一個多站網站的子網站,我們就是將uploads下的資料刪除,再把uploads\sites\42\改成新的多站網站的編號,如我新的多站網站編號是2,就是將uploads\sites\42\改成uploads\sites\2\。在site_id下的資料就是我原本子網站的uploads資料,我們只要保留這個資料夾內的資料即可,其他編號的資料及主網站的資料我這裡就全部刪除。

而若是我要搬移的是一個全新的單一網站,那做法就是將uploads\sites\42\資料夾下的全部資料,搬移到uploads\資料夾下,而原本uploads\資料夾下的主網站資料及sites\資料夾下的其他子網站資料,全部刪除。

補充說明:這裡若是要搬移到單一網站的話,在wp-config.php的設定裡需要將原本多站網站的設定拿掉。也就是下面的圖示這些設定。

最後,再將uploads壓縮成.zip檔,以上就是備分網站的檔案步案。

整理資料表內容 (搜尋/取代)

利用任何文字編輯器 (記事本、Notepad++、Visual Studio Code、Sublime 等) 開啟稍早備份出來的資料庫。將資料庫名稱改為新資料庫的名稱 (例如:dbomiasite –> dbomiabu)、資料表前綴改為新的資料表前綴 (例如:wp_42 –> wp_2)

另外,也要將網址由原來主網站的網址取代成新網站的網址等。

於新多站網站或新網站匯入檔案與個別資料庫內容

最後,一樣在新的網站中,安裝UpdraftPlus 外掛,然後再將themes、plugins及uploads等壓縮檔上傳上去,再還原媒體檔案。

以及將搜尋取代後的資料庫,匯入新的資料庫中。我的做法是將子網站對應的site id資料庫先全部刪除,再全部匯入。

等待媒體檔案及資料庫全部匯入還原後,就可以試著重新登入回控制台首頁。登入後,就可以看到網站已經搬移到新的多站網站或是單一網站了。

發佈留言