プラグインを頼らずWordPressのサーバー移行。新ドメインでも大丈夫!
プラグインを頼らずWordPressのバックアップと復元に挑戦してみます! サーバーを移行して、ドメインが新しく変わる場合でも有効な方法です。
先日、WordPressサイトの複製を簡単にできるプラグインを紹介しました。
でもWordPressをインストールしている環境やサイトの規模しだいで、プラグインが動かなかったり、バックアップが途中で止まったりする場合があります。そんなとき、今回のプラグインを利用しない方法でバックアップから復旧までの手順を知っておくと助かりますよ。
まずはWordPressを構成する2種類の情報を理解するところから始めましょう。
WordPressサイトを構成する2種類の情報
WordPressサイトは、ファイルとデータベースという2種類の情報で成り立ってます。サーバーを移行するためには、この2種類の情報をそれぞれバックアップするのと、復元する作業が必要になります。
ファイルとは?
ファイルは、「WordPress本体のシステムファイル」、「テーマを構成するファイル」、「プラグインファイル」、「アップロードした画像ファイル」などを指します。
ファイルはサーバーの中に存在し、FTPソフトを利用してサーバーへアクセスすると下図のように、どこにどのファイルが保存されているのかを確認できます。
ちなみにFTPソフトでサーバーへアクセスする方法は過去に記事にしました。こちらも参考にどうぞ。
データベースとは?
データベースは、「記事中のテキスト(文章やHTMLタグ)」「テーマ設定」「ウィジェット設定」「プラグイン設定」などの情報を格納してます。これらの情報もサーバーの中に存在しますが、ファイルとは別の場所に分離されてます。レンタルサーバーのコントロールパネルから利用できる「phpMyAdmin」を使えば、データベースの中身を確認できます。方法は後述します。
サーバー移行の手順
今まで説明してきた2種類のデータ、「ファイル」と「データベース」を旧サーバーから新サーバーへ移動させればサーバー移行は完了です。手順にすると上記の4つに分かれ、「1. ダウンロード」と「2. エクスポート」はWordPressサイトのバックアップにあたり、「3. アップロード」と「4. インポート」は復元にあたります。それぞれ順番にやってみます。
1. 旧サーバーのファイルをダウンロード
ファイルのバックアップは、FTPソフトでレンタルサーバーに接続し必要なファイルを「手元のPC(=ローカル)」ヘダウンロードすればOKです。WordPressサイトで使用してるファイルをすべて選択しローカルの任意の場所へドラッグ&ドロップします。
ダウンロードしたら「wp-config.php」というファイルを見つけましょう。「wp-config.php」は、WordPressとデータベースを接続するための情報を記述してます。ダウンロード直後は、旧サーバーにおけるデータベースの情報を記述しているので、新しい環境のものに書き変える必要があります。
ファイルを開き24行目あたりを見てみます。「1. データベース名」、「2. ユーザー名」、「3. パスワード」、「4. ホスト名」の記述を見つけられます。それぞれを新たなサーバーのデータベース情報に書き変えます。新たなデータベース情報はレンタルサーバーのコントロールパネルから得られます。
ちなみにこれはロリポップの場合です。お手頃価格なので使っている人も多いでしょう。
コントロールパネルにログインし「Webツール > データベース」の画面へ移動すると「1〜4」までの情報を得られます。
さくらサーバーを利用するWordPressユーザーも多いですよね。データベース情報を得られる画面を載せておきます。
コントロールパネルにログイン後、「アプリケーションの設定 > データベースの設定」へ移動したときの画面です。
2. データベースをエクスポート
エクスポートは、データベースの中にある情報を手元のPC(ローカル)へ出力することを意味します。バックアップと同意だと考えていいでしょう。
エクスポートはレンタルサーバーのコントロールパネルから「phpMyAdmin」へログインして行います。
ロリポップを例にすると、「Webツール > データベース > phpMyAdminを開く」でログインできます。
さくらサーバーの場合は、「アプリケーションの設定 > データベースの設定 > 管理ツール ログイン」でOK。
phpMyAdminへログイン後の画面です。
左のサイドバーからWordPressサイトが使用しているデータベース名をクリックします。
その後表示する画面で「エクスポート」をクリックすると、エクスポートに関する設定をできる画面へ移動します。
色々とややこしい表記がありますが、通常の場合なら上図のように選択&チェックを入れて実行すればエクスポートは完了します。選択に注意が必要なところは赤で囲んでおきました。圧縮の例では「zip」にしてますが他の形式でも構いません。
なおレンタルサーバーによっては旧バージョンのphpMyadminを使っているところもあります。若干画面の具合が異なるので、その場合は下記のリンク先で確かめられます。
これで「ファイル」と「データベース」のバックアップは完了です。次からは復元の手順になります。
3. 新サーバーへファイルをアップロード
復元はまずバックアップしたファイルを新しいサーバーへアップロードするところから始めます。
FTPソフトを使いレンタルサーバーへ接続後、手元のPCからファイルをドラッグ&ドロップします。ダウンロード時と逆の動作ですね。アップロードが完了すればOKです。
4. データベースをインポート
インポートはエクスポートの逆です。バックアップしたデータベースの情報を新たなデータベースに取り入れます。方法は次の通り。
新しいレンタルサーバーのコントロールパネルからphpMyAdminへログインします。
インポートするデータベースを左のサイドバーから選択します。
インポートをクリックします。
「ファイルを選択」をクリックし、「2」の手順でエクスポートしたファイルを選択します。「実行」をクリックするとインポートが完了します。
無事インポートが終わればメッセージを表示します。
ドメインが変わる場合
インポートしたデータベースで「SQL」をクリックした画面です。
サーバーの移行に伴いドメインが新しく変わる場合は、ひと手間余分に必要です。例えば「http://example.old/」から「http://example.new/」へ変わるような場合です。
データベースの一部の情報はドメインに関わるものです。このまま放置しておくと、WordPressの管理画面や記事内の画像リンクなどが旧ドメインへリンクしたままになります。これらを修正するにはSQL文を利用します。
UPDATE wp_options SET option_value = replace(option_value, 'http://example.old/', 'http://example.new/') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://example.old/','http://example.new/'); UPDATE wp_posts SET post_content = replace(post_content, 'http://example.old/', 'http://example.new/'); UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://example.old/','http://example.new/');
上記SQL文で以下の箇所を自分の環境に合わせて書き変えることを忘れないようにして、テキストエリア(上図赤枠)に貼付け「実行」をクリックすれば完了です。
wp_ | テーブル接頭辞。通常は「wp_」ですが、WordPressインストール時に任意で設定した覚えがあれば、それを。「wp-config.php」を開いても確認できます。69行目あたりに記述してます。
|
http://example.old/ | 古いドメイン |
http://example.new/ | 新しいドメイン |
何事もなければ成功のメッセージを表示します。
以上!
なかなかの長丁場になりましたが、環境を問わず万能な方法なので、メモっておくだけでも価値があると思います。
記事中では、ロリポップとさくらサーバーを例にあげました。移転先のおすすめとしてエックスサーバーもあげておきます。動作は安定していて、電話サポートやバックアップなど頼れる機能も充実しているので、WordPressサイトにはピッタリのレンタルサーバーだと思います。
- 2014/9/28追記
- 下の方で記述してるソースに誤りがあったので修正しました。