Wordpress 搬家教學,如何搬移到新主機進行預覽,避免 ssl 強制轉導或導回舊站

Wordpress 搬家教學,如何搬移到新主機進行預覽,避免 ssl 強制轉導或導回舊站

Wordpress 搬家前,舊站仍需要正常運作,同時要將資料搬移到新主機進行瀏覽。

由於新主機我們希望先瀏覽是否能正常訪問,因此,並不需要強制要求 ssl 憑證,因此,會有需求是要能移除 ssl 以及強制導向。

最常見的問題就是, wordpress 資料搬移到新主機,卻重新導向回到舊站,或者強制導向 ssl。

這裡將說明如何一步步的進行更換主機:

1.備份網站及資料庫 上傳至新網站

將舊主機 public_html 裡面所有資料下載,並且上傳到新主機的網站根目錄。

同時將舊主機的資料庫下載,以及同時匯入新主機資料庫中。

2.設定 web-config.php

在新站台,開啟 wp-config.php 檔案,一步步的調整內容:

首先,修改資料庫資訊,依照新資料庫的相關連線方式填寫到對應的值:

<?php 
...
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', '資料庫名稱');

/** MySQL database username */
define('DB_USER', '資料庫用戶名');

/** MySQL database password */
define('DB_PASSWORD', '資料庫密碼');

/** MySQL hostname */
define('DB_HOST', '資料庫位置');

接著,我們加上以下幾個設定,設定不使用 ssl 以及修改 HOME 位置

<?php
...
$_SERVER['HTTPS'] = 'off';
define('WP_DEBUG', false);
define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);
define('WP_HOME', 'http://新主機位置');
define('WP_SITEURL', 'http://新主機位置');

3.更新資料庫的舊網址為新站台位置

由於 wordpress 會將網址寫入到資料庫內容及設定中,因此,在這裡可以透過以下指令快速的更新資料庫網址內容,

注意,這裏網址部分,我們預設新站台目前僅用於測試,網址是 “http” 開頭!

UPDATE wp_options SET option_value = replace(option_value, 'https://舊主機網址', 'http://新主機位置') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'https://舊主機網址','http://新主機位置');
UPDATE wp_posts SET post_content = replace(post_content, 'https://舊主機網址', 'http://新主機位置');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://舊主機網址','http://新主機位置');

4.清除快取檔案

前往 wp-content/ 目錄,將 wp-content/cache/ 資料夾移除,

這裡我沒有直接移除,而是先資料夾名稱變更為 cache-backup

cd wp-content
mv cache cache-backup

5.清除瀏覽器快取

別忘了清除瀏覽器快取或用無痕模式進行確認

好了,以上設定完畢,應該就能更正常的在新站台瀏覽 wordpress 網站了,

當我們確認好內容無誤之後,接著要做的就是依照以上的流程,重新調整網址及恢復 ssl 強制導向。

在這裡,就需要在新主機再加上 ssl 憑證等流程,以及將 DNS 指向到新主機,就能完成搬家。

最後

可依照情況決定是否調整以下內容

如果有舊站需要先運行,新站暫時用於測試,可以先在後台把搜尋引擎阻擋

可以前往以下位置,勾選阻擋搜尋引擎搜尋這個網頁

wp-admin/options-reading.php

此外,如果發生 Wordpress 無法寫入檔案問題,可以對權限進行設定

#允許圖片上傳
chmod 777 wp-content

接著,上傳一張圖片,查看上傳的使用者身份,並且在把權限還原到 755

chmod 755 wp-content

例如,我們查看的使用者身份為

apache apache

接著,將目前wordpress 網站資料夾權限變更為這個使用者

chown -R apache:apache my_wp_blog