因為要更換主題,想把原來的網站搬到本地進行測試,由此接觸到 WordPress 搬家。這其間碰到大量問題,還好有搜索引擎的幫助。最終把這些問題一一解決,在這裏寫個總結。

WordPress 搬家包括 2 部分:WordPress 系統程序和 MySQL 數據庫。搬家有域名目錄不變只改變空間、域名目錄改變空間不變和域名目錄與空間都改變 3 種情況,這裏講的是域名和空間都改變的情況。前 2 種情況相對比較簡單,可以參照域名和空間都改變的情況進行 WordPress 搬家。方法如下:

WordPress 系統程序

把網站根目錄下的全部文件用 FTP 軟件下載到本地,修改其中的 config.php 文件。注意最好以 utf-8 無 BOM 格式編輯保存,推薦使用 notepad++文本編輯器。不然可能出現 「Waring:Cannot modify header information 。」 的錯誤。

WordPress搬家

特別注意如果原網站或新網站安放在二級目錄時,還要修改其中的.htaccess 文件。 WordPress 在安裝時,會根據網站具體的目錄結構產生一個.htaccess 文件。該文件與 URL 重定向有關,直接關係到網站虛擬重寫目錄及網頁的訪問是否正常。 ZCMHI 在將網站從根目錄搬家到本地二級目錄時,就遇到首頁顯示正常,但是一些虛擬目錄和網頁無法訪問的情況。比如 localhost/zcmhi/archives/下的所有分類目錄和網頁都無法訪問。以 WordPress 從根目錄搬到二級目錄為例,修改.htaccess 文件的方法為在 RewriteBase 和第二個 RewriteRule 項添加二級目錄。

原網站.htaccess 文件

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ -[L]
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME}!-d
RewriteRule ./index.php [L]# END WordPress

修改後.htaccess 文件

# BEGIN WordPress
RewriteEngine On
RewriteBase /zcmhi/
RewriteRule ^index.php$ -[L]
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME}!-d
RewriteRule ./zcmhi/index.php [L]
# END WordPress

具體應根據實際情況進行更改。最後將所有文件上傳到新的主機空間。這裏指全部文件,是為了使搬家後的網站與原網站完全相同。

如果遇到後台登陸一片空白或出現 「Waring:Cannot modify header information 。」 等後台無法登陸前台無法顯示的情況,比如 ZCMHI 在登陸後台時由 All in one seo pack 插件造成的錯誤,如圖。這時可以通過 FTP 軟件進入網站目錄把插件或主題目錄改名,比如把 plugins 改為 plugin0,themes 改為 themes0(主題無法調用時系統會恢復默認主題),登陸後台後再通過 FTP 改回來。出現這種情況的原因多為第三方插件或主題與 WordPress 不能完全兼容。

WordPress搬家

MySQL 數據庫

登入原網站數據庫管理界面,一般 phpMyAdmin 。進入對應的數據庫,對 「結構」 項全選,點擊導出 (如圖),其他設置默認就行,保存到本地。

WordPress搬家

也可以使用 WP-DBmanager 插件備份數據庫後下載到本地。接着用文本編輯器以 utf-8 格式打開編輯。查找原來域名,全部替換為新的域名目錄。也可以在導入到新的數據庫後,修改表 wp-options 中 siteurl 和 home 項為新域名。

再到新的數據庫管理界面,導入數據庫,注意以 utf8_general_ci 導入。

WordPress搬家

至此 WordPress 搬家基本結束,可能需要登入 WordPress 後台對一些地方進行適當調整。

一小點建議:由於安裝的插件及主題可能並非為 WordPress 官方開發,因為兼容性問題在搬家過程中可能引起這樣那樣的問題。建議 WordPress 搬家前停用所有的插件,安裝了緩存插件要清除緩存,並恢復到默認主題。在搬家結束後登陸 WordPress 後台進行還原。