WordPressでローカルで作成したサイトをアップしたり、本番サイトのバックアップを別URLのテストサイトに移行する際の方法として色々とやり方はありますが、よく行う手法としては「エディタでURLを一括置換する」という方法です。
しかし、これだとWordPressの機能の一つであるウィジェットで設定したセッティングやテーマ側で設定したデータベースのシリアライズされた情報はそのまま移行できない場合があります。
そんなときは検索と置換を正しく行ってくれるツール、「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」を使います。
設定
1.phpmyadminでDBエクスポート
まずはphpmyadminから移行させたいDBをエクスポートします。
DropTableのチェックを忘れずに。
phpmyadmin ではなく、ssh接続にて mysqldump を利用してエクスポートしても問題ありません。
2.DBを移行先にインポート
移行させたいデータベースがエクスポートできたら、sqlファイルを書き換えせず移行先へそのままインポートします。
この時データベースを移行したサイトにアクセスするとエラーとなるので焦らず次のステップにいきます。
こちらも同様、ssh接続し、 mysql コマンドにてインポートする方法でも可です。
3.ツールを実行
「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」を使います。
ツールのダウンロード、移行先へのFTPでのアップロードは済ませておきます。
現在は「できれば寄付してね」という方式に変わったようですが、$0を選択しても問題ありませんと明記されています。
一式データのアップロードができたらブラウザで直接アクセスします。
※サイトのURL+解凍してアップロードしたフォルダの名称
無事アクセスできれば、下記のような画面になるので、設定項目に入力します。
置換前文字列:元URLが入ります。(ex: http://old.com)
置換後文字列:新しい移行先のURLが入ります。(ex: http://new.com)
databese情報:データベースの情報を入力します(wp-config.php等を参照)
上記設定できたら、一度「dry run」をクリックします。dry run は実際の書き換えの前にテスト実行する機能です。対象となるテーブルにいくつ検索・置換を実施する対象数があるのかがわかり、おおよその目安がわかります。検索する値が間違っているときは0となるので間違っているときも気づきやすいです。
dry run 後問題ないようであれば、「live run」をクリック。
これでデータベースの置換作業を行ってくれます。
4.確認とパーマリンクの更新
規模やPHPのバージョン等の環境にもよりますが、おおよそ数秒〜数十秒程度で完了します。終わったのを確認して新しいURLにアクセスします。
その際下層ページが404エラーになるときがあります。その場合は管理画面からログインして「設定」→「パーマリンク」内より、画面そのままで「変更を保存」をクリックします。これで .htaccess ファイルが更新され、下層ページが表示されないという問題が解消されます。
.htaccess ファイルが正しく更新されるかも含めて確認しておくと安心なので、下層ページが表示されている問題ない場合でもパーマリンク設定を保存しておくことをお勧めします。
ちなみに、WordPressの移行プラグインでおなじみの All In One WP Migration は2回保存することを推奨しています。
5. 完了とツール削除
これで完了です。ウィジェット等の情報もしっかり反映されているはずです。
セキュリティの観点から、移行完了後「deleat me」を押すか、FTPからこのフォルダ一式を削除しておきましょう。
ちなみに、削除できないときは以下の画像が表示されます。
そのときはFTPから手動で削除します。
まとめ
以上で完了です。
sqlファイルを検索置換していた作業とさほど変わらず移行できるため便利です。記事公開時点ではVer3.0.0でしたが、不具合があるようであればVer2.Xを使用しましょう。
以上、覚えておいて損はないWordPressデータベース移行方法でした。
別記事でもこのツールの利用方法を紹介していますので、合わせてこちらもご参考ください。
ツールのダウンロードはこちら↓
WordPress Serialized PHP Search Replace Tool
コメントを残す