WordPerssデータベースのデータ中のURLを置換【引越し完了】


スクリーンショット 2014-11-15 14.13.03 WordPressの引越し

データベースの引越し(phpMyAdminでのインポート) で本番サーバのデータベースをインポートしましたが、それだけではデータベースの引越し作業は完了しません。本番サーバとローカルサーバの環境違い(ドメイン)などの置換処理が必要です。今回はその置換処理を行います。

データベースへの直接置換は危ない

WordPressの公式マニュアル Codex >> Moving WordPress には次のように記載されています。

あなたがURLを変更するためにデータベース全体で検索と置換を実行すると、データシリアライゼーション(変換)で問題を引き起こすことがあります。テーマやウィジェットの中にはURLの長さを示す値を含むものがあるためです。これが変わると壊れます

スクリーンショット 2014-11-15 15.11.15

引越しでドメインが変わると、URLの長さも変わることがあります。データベースにはシリアライズしてURLの長さも保持している可能性があります。その場合、直接置換してしまうと実際のURLとURLの長さを保持している値が矛盾しデータが壊れます。
Codex にはいくつかの置換方法がありますが、今回は”WordPressデータベース用検索と置換スクリプト (WordPress Serialized PHP Search Replace Tool ) ”を使います。

WordPress Serialized PHP Search Replace Tool

スクリーンショット 2014-11-15 15.33.06

WordPress Serialized PHP Search Replace Tool の公式サイトにアクセスします。

スクリーンショット 2014-11-15 16.29.06

自分は安定板の”STABLE”をダウンロードしました。解凍したファイル “searchreplacedb2.php” をWordPressの wp-config.php を同じ階層に置きます。

スクリーンショット 2014-11-15 16.42.54

ブラウザから “searchreplacedb2.php” にアクセスします。wp-config.php からDB設定情報を取得するかどうか聞いてくるのでチェックをし、submitボタンをクリックします。

スクリーンショット 2014-11-15 16.47.36

wp-config.php から設定情報を読み取り入力されています。確認して、”Submint DB details”ボタンをクリックします。

スクリーンショット 2014-11-15 16.55.05

置換したいテーブルを選択して、”continue” ボタンをクリックします。

スクリーンショット 2014-11-15 17.10.22

置換するURLを入力します。httpなどのスキーム部分も入力しないと、メールアドレスのドメインなど他のデータも置換される恐れがあります。URLだけ置換したい場合はスキーム部分も含めてください。また、ドメイン後のスラッシュは入力しません。”Submit search string” ボタンをクリックします。

スクリーンショット 2014-11-15 17.28.35
置換結果が表示されます。これでマルチサイトでなければ完了です。

searchreplacedb2.php は終わったら必ず削除します。セキュリテリ上、残しておくと非常に危ないです。必要なときだけ設置し、終われば削除しておきます。

マルチサイトの場合

マルチサイトはもう少し作業が必要です。
WordPressの公式マニュアル Codex >> Moving WordPress には次のように記載されています。

マルチサイトの移動はもう少し複雑です。データベース自体にサーバー名もフォルダーの場所も複数の参照を持っているからです。全wp_x_postsテーブルに対する検索/置換は安全です。WordPressデータベース用検索と置換スクリプト を使用しないで、一括で検索/置換を適用することは避けてください
とにかくwp_sitewp_blogsの両方を手作業で再検討すべきです。更に手作業ですべてのwp_x_optionsテーブルを再検討し、以下の 3 項目を探して随時編集ください(home、siteurl、fileupload_url)。

基本は、”WordPressデータベース用検索と置換スクリプト” を使って置換します。なので、上記までの処理はマルチサイトでも一緒です。さらに、マルチサイトはまだ全自動できないらしいのでいくつかのテーブルだけ手動でします。
スクリーンショット 2014-11-15 19.57.04
wp_site と wp_blogs と wp_x_options(home、siteurl、fileupload_url) に関しては変更をチェクし、変更されてなければ変更します。データベースを直接触るので少し難易度が上がりますか、置換するためのマルチサイト対応の公式プラグインもあるらしいのでデザイナーさんなどはそっちも検証してもいいかもしれません。

最後に

今回で引越しの作業は全て終わりです。リンク先が正しいかテストしていきます。リンク先がおかしい場合、パーマリンクを再設定したり、.htaccess を見直せば修正できると思われます。
少しでも引越し作業の参考になれば幸いです。


[WordPressの引越し 関連記事]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です