本篇是將 WordPress 網站從舊的共享主機轉移至 Linode VPS LEMP 伺服器的過程紀錄。
前陣子因為舊網站空間的 MySQL 資料庫出問題,所以從 Linode 買了一個新的 VPS 主機空間,安裝並設定好 Ubuntu Linux 系統之後,架設了一個 LEMP 伺服器,接下來就是要將既有的 WordPress 網站搬到新的 VPS 主機空間了。
在更換主機空間的過程中,從一開始的 Linux 系統安裝到 LEMP 伺服器的各種設定等過程,都可以很輕鬆的來處理,這中間如果不小心出差錯,頂多只是把搞砸的虛擬主機刪掉,重新再裝一次就好了,不會影響到現行網站的運作,但在 LEMP 伺服器安裝好之後,開始轉移 WordPress 網站時,就要十分注意,這個部份如果一不小心沒處理好,就可能會讓網站斷線,直接影響網站的營運!
以下是 WordPress 網站遷移的步驟。
Step 1
首先確定 WordPress 的使用者都已經登出了,不會有人在網站遷移時還在線上編輯文章,或是做任何會更動網站內容的動作。
Step 2
將 WordPress 網站從舊的網頁空間中備份出來,因為只是更換網頁空間,網址並沒有更動,這種搬移方式非常單純,只要備份下列兩個部分:
MySQL 資料庫的備份可以使用主機商提供的 phpMyAdmin,或是使用 mysqldump
,例如:
mysqldump --host localhost --opt --user=USERNAME --password='MYSQL_PASSWORD' DB_NAME | gzip > mysql_backup.sql.gz
而 WordPress 的檔案可以直接使用 FTP 抓取,或是使用 rsync
備份:
rsync -avz username@old.webhost.com:/path/to/www .
如果新舊主機都可以使用 SSH 登入的話,其實可以直接在新主機上使用 rsync
,直接把檔案搬到新主機上,這樣子是最快的。
Step 3
設定新主機的 MySQL 資料庫與帳號,我們需要在新的 MySQL 伺服器上新增一個 WordPress 網站專用的 MySQL 資料庫與一個帳號,資料庫與帳號的名稱可以自己任意取,假設要新增一個 blogdb
資料庫與一個本機的 dbuser
使用者,首先用 MySQL 管理者的權限進入資料庫:
mysql -h localhost -u root -p
接著新增 blogdb
資料庫:
CREATE DATABASE blogdb;
新增本機的 dbuser
使用者,並且開啟其使用 blogdb
資料庫的權限:
CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'PASSWORD'; GRANT ALL PRIVILEGES ON blogdb.* TO 'dbuser'@'localhost';
由於這裡新增的 dbuser
使用者是專門給 WordPress 用的,平常我們不會用這個帳號登入,所以建議可以使用亂數的方式產生比較複雜的密碼,這樣安全性比較高。
Step 4
建立好 WordPress 用的 MySQL 資料庫與使用者之後,就可以將剛剛備份的 WordPress 資料庫倒進去了,我們可以使用 phpMyAdmin 將資料匯入剛剛新建的 blogdb
資料庫,或是使用 mysql
指令匯入:
zcat mysql_backup.sql.gz | mysql -h localhost -u dbuser -p blogdb
這樣資料庫的部分就完成了。
Step 5
將 WordPress 的檔案放置到適當的位置,在 Ubuntu Linux 中大家通常習慣會把網頁資料放在 /var/www
之下,所以我也就直接把 WordPress 的網頁檔案放在這裡,依照網站建立目錄:
sudo mkdir -p /var/www/blog.gtwang.org
接著就將剛剛從舊空間備份出來 WordPress 檔案放進來這個目錄,或是直接在這裡使用 rsync
將檔案搬過來。搬過來之後,先編輯 wp-config.php
這個設定檔,更新一下資料庫的設定:
define('DB_NAME', 'blogdb'); define('DB_USER', 'dbuser'); define('DB_PASSWORD', 'PASSWORD'); define('DB_HOST', 'localhost');
最後還要變更一下檔案的擁有者:
sudo chown -R www-data:www-data /var/www/blog.gtwang.org
Page: 1 2