WordPressのURLの移動や変更、ローカルから本サーバへの移動などWordPressの引越しをする際の正しいやり方はご存知ですか? 正しいやり方で移行しないと、プラグインが動かなかったり、メディアの一部がインポートされない、一部のページが読み込まれてなかったりと、何かしらの不具合が発生します。

私も何か確実な方法は無いかと探していたところ、答えはWordPress Codex(※WordPress Codexは、WordPressの公式オンラインマニュアルで、WordPressの辞書のようなものです。)のWordPress の引越し - WordPress Codex 日本語版で推奨されている「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」というツールを使った移行方法です。

またWordPress Codexのサイト URL の変更 - WordPress Codex 日本語版の注意事項に、 サイトURLの変更の際、データベースの中のGUIDフィールドに含まれる内容は変更しないとあります。

GUID についての重要事項

これらの点を踏まえ、WordPressの正しくて確実な引越し方法をご紹介していきます。

目次

  1. 引っ越しの準備
    • サイトのデータをダウンロード
    • データベースのエクスポート
    • 設定ファイルの変更
  2. データの引っ越し
    • ファイルの移動
    • データベースの移動 新しいDBを作成し、データをインポート
  3. URLの置換
    • Search-Replace-DB-masternの設置
    • Search-Replace-DB-masternでdbの置換
    • 管理画面からログイン

1と2は今まで通りのやり方のおさらいです。ご存知の方は3から読み進めて行ってください。

1.引っ越しの準備

サイトのデータをダウンロード

FTPソフトなどで、サイトのデータを全てダウンロードします。 ※ローカルの場合はこの作業は必要ありません。

データベースのエクスポート

phpMyAdminを立ち上げて、データベースの名前をクリックし、 エクスポートを選択します。 phpMyAdmin

エクスポート方法から「詳細を」選択し、 出力を「出力ファイルを保存する」にチェックを入れ 「zip形式」「gzip形式」のどちらかを選択する。 phpMyAdmin

生成オプションの追加コマンドで「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドを追加する」 にチェックを入れ実行ボタンを押します。

phpMyAdmin

設定ファイルの変更

移行後のサーバーに合わせてwp-config.phpの設定を変更します。


/** WordPress のためのデータベース名 */
define('DB_NAME', 'sample');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'sample');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'sample');

/** MySQL のホスト名 */
define('DB_HOST', 'sample');

ディレクトリが違う場合は.htaccessの変更の変更も必要です。

RewriteBase /fudousan/
RewriteRule . /fudousan/index.php [L]

2.データの引っ越し

ファイルの移動

ダウンロードしたデータを移行先のサーバーにFTPでアップロード

データベースの移動

移行後のサーバーのphpMyAdminを起動し、新規データベースを作成。 インポートをクリックし、作成したエクスポートデータを選択して、実行ボタンを押す。

phpMyAdmin

3.URLの置換

最初に紹介したとおりですが、GUIDを置換しなでください。 実は私も下記の記事を読むまで、GUIDの存在を知りませんでした…。

つまりGUIDとは、データベースの一意なIDであり、変更してはいけないところです。 置換の際は必ずGUIDを除外するように設定してください。

Search-Replace-DB-masternの設置

DATABASE SEARCH AND REPLACE SCRIPT IN PHP」のページから、[DOWNLOAD V.3.1.0]をダウンロードします。

phpMyAdmin

phpMyAdmin

Search-Replace-DB-masternで置換

ダウンロードしたフォルダを解凍し、wp-config.phpと同じ階層に「Search-Replace-DB-master」フォルダをアップロードします。

phpMyAdmin

ブラウザで下記のURLを開きます。

http://移行後のサーバー名/Search-Replace-DB-master/

phpMyAdmin

1.search/replace
「replace」に移行前のドメイン名、「with」に移行後のドメイン名を入力してください。
http(s)や/を入力するとエラーになります
良い例: www.sample.com/test
悪い例: http://www.sample.com/test/

2.database
接続するデータベース情報が合っているかを確認します。

3.tables
置換するテーブルを限定できます。
[columns to exclude]で除外設定をします。 GUIDと入力してください。

4.actions
「dry run」で置換の仮実行、「live run」で置換を実行します。

5.delete
「delete」ボタンを押すと、データベース置換機能を失いますが、 フォルダごと削除することをお勧めします。

管理画面からログイン

最後にwordpressの管理画面にログインして移行が完了していることを確認してください。

まとめ

WordPressの引越しで重要なポイント

  1. 「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」を使ってURLの置換を行う
  2. データベース置換の際にGUIDを除外する

WordPressの情報はネット上にたくさんありますが、間違った情報もあるので、 WordPress Codexなどの信頼できる情報、信頼できる人からの情報を参考にしましょう。 また今では使われなくなった古い情報もあるので、なるべく新しい情報を参考にしてください。

ちなみにsshでコマンドが使える方には、WP-CLIがお勧めです。 私を含めweb制作をする人には少し敷居が高いので敬遠しがちですが、WP-CLIが使えると かなり便利です。

次の記事 前の記事