WordPress Search Replace DB の使い方 (Version 3)
Search Replace DB を使うと検索/置換する際にデータベースに保存されたシリアライズされたデータも変換することができます。以下は Search Replace DB の基本的な使い方の覚書です。
更新日:2022年03月13日
作成日:2020年2月12日
Search Replace DB のダウンロード
Database Search and Replace Script in PHP の公式サイトにアクセスしてフォームの必要事項を入力して送信するとダウンロードのリンクが送られてくるので Search Replace DB をダウンロードします。
Database Search and Replace Script in PHP 公式サイト:https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
サイトにアクセスすると冒頭部分(上記スクリーンショット)に以下のようなことが記載されています。
前文(Preamble)
一部のユーザーはアドバイスにもかかわらず、このスクリプトをサーバーに残していることに気が付きました。このスクリプトをサーバーに残しておくと、セキュリティ上大変危険であることを確実に認識していただくために、以下のフォームに入力してダウンロードリンクをメールで受信していただくようお願いします。以下のインストール手順も注意深くお読みください。
このため単にサイトからスクリプトをダウンロードするのではなく、注意事項の書かれたメールを送って確実に注意喚起を行うようにしているようです。送られてくるメールに記載されたリンクからダウンロードできるようになっています。
※【重要】作業が完了したらできるだけすぐにサーバーからこのスクリプトを削除する必要があります(サーバー上にスクリプトを残しておくと誰でもそのスクリプトを使ってデータベースを変更することができてしまいます)。
ダウンロード方法
ページに表示されている以下のフォームのチェックボックスの項目を確認し、チェックを入れると「Submit(送信)ボタンが」表示されます。名前やメールアドレスを入力してボタンをクリックすると暫くしてダウンロードリンクが記載されたメールが送られてきます(※送られてくるメールは迷惑メールと判定される可能性が高いので、受信フォルダにない場合は迷惑メールフォルダ等をチェックします)。
チェックボックスの項目は以下のようなことが記載されています。
- 私はこのスクリプトはセキュリティリスクになる可能性があることを認識します
- 私はこのスクリプトは、公開されているWebサーバーに残してはならないことを理解しています
- 私は開発者であり、私がやっていることを知っています!
以下のような注意事項の記載されたメールが送られてくるのでダウンロードリンク「here」をクリックするとスクリプトの zip ファイル(Search-Replace-DB-3-1-0-emaildownloads.zip)をダウンロードすることができます。
インストール
ダウンロードした zip ファイルを展開します。展開した Search-Replace-DB-master というディレクトリを wp-admin や wp-content、wp-includes のディレクトリと同じ階層に配置します。
配置後、ブラウザで「http://ドメイン名/Search-Replace-DB-master/ 」にアクセスして以下のような画面が表示されればインストールは完了です。
ディレクトリ名の変更
ディレクトリの名前「Search-Replace-DB-master」は任意の名前に変更することができます。
使い方
WordPress のサイトを移行する場合、以下のような準備をしておきます。
移行前の準備
- 万が一に備えて移行元のデータをバックアップ
- 移行元のデータ(全てのファイル)を移行先に設置
- 移行元のデータベースをエクスポート
- 移行先に空のデータベースを作成
- エクスポートした移行元のデータベースを移行先のデータベースにインポート
- .htaccess や wp-config.php を移行先の環境に合わせて修正
関連ページ:サーバ上の WordPress をローカル環境に移行
その後、Search Replace DB を移行先にインストールして使用します。
以下はプロダクション(本番サーバ)からローカル環境への移行で www.example.com(移行元)を example.localhost(移行先)に置換する例です。
この時点では、すでに移行元のデータベースを移行先にインポートしてありますが、移行先の URL にアクセスすると以下のような表示になっています。
例:http://example.localhost/
ブラウザで移行先の URL 「http://ドメイン名/Search-Replace-DB-master/ 」にアクセスすると以下のような画面が表示されます(ディレクトリ名を Search-Replace-DB-master から変更している場合は、変更した名前の URL でアクセスします)。
例:http://example.localhost/Search-Replace-DB-master/
search/replace
search/replace の「replace」には移行元(検索・置換の対象)の URL(またはその一部)を入力し、「with」には移行先の URL(またはその一部)を入力します。
この例の場合は、「http://www.example.com」を「http://example.localhost」に置換したいので、「replace」には「www.example.com」を、「with」には「example.localhost」を指定しています。
何を検索・置換対象とするかやプロトコル部分も含めるかなどはサイトの環境に応じて決定する必要があるかと思います。
例えば、単に example.com を example.localhost に置換する場合、E-mail アドレス info@example.com は info@example.localhost に置換されるので必要に応じて置換対象にプロトコル部分(http:// や https://)を含めるか、置換後に修正するなどが必要になります。
database
「database」の部分はデータベースから自動的に取得してきてくれます。
tables
「tables」の部分はデフォルトでは全てのテーブルを対象とする「all tables」が選択されています。テーブルを限定する場合は「select tables」を選択して指定します。
action
actions にあるボタン「dry run」や「live run」を使って置換のシミュレーションや置換を実行します。
dry run
「dry run」では、実際の書き換え(置換)は行われず、どのように置換されるかを確認(シミュレーション)することができるので、置換を実行する前に確認します。
変更があったテーブルには「view changes」というリンクが表示され、クリックするとどのように置換されるかを確認することができます。
※ この画面は右上の「x Close」をクリックして閉じることができます(元の画面に戻ります)。
live run
「dry run」で置換される内容を確認し、問題なければ「live run」をクリックして置換を実行します。
以下のようなアラートが表示されるので確認します。
「本当に置換の実行の準備は整っていますか? データベースのバックアップを取ってください!」
問題がなければ「OK」をクリックすると置換が開始されます。
スクリプトの削除
delete
しばらくすると置換が終了します。置換が正しく実行され、.htaccess や wp-config.php に問題がなければ移行先のサイトの URL にアクセスすればサイトが表示されるはずです。
終了後、画面には置換の結果と下の方にスクロールすると「delete me」ボタンが表示されます。
置換の作業が完了したら「delete me」ボタンをクリックしてサーバーから「Search-Replace-DB-master」を必ず削除します(または、手動で削除します)。
「delete me」ボタンをクリックすると以下のアラートが表示されるので「OK」をクリックします。
以下が表示され、「Search-Replace-DB-master」が削除されます。
念の為、実際に「Search-Replace-DB-master」ディレクトリが削除されているかを確認します。
※このスクリプトがサーバー上に残っていると、「http://ドメイン名/Search-Replace-DB-master/ 」にアクセスすれば誰でもデータベースの書き換えができてしまうため大変危険です。