WordPress Search Replace DB の使い方
Search Replace DB を使うと検索/置換する際にデータベースに保存されたシリアライズされたデータも変換することができます。以下は Search Replace DB (verision 4) の基本的な使い方の覚書です。
Version 4 用に内容を書き換えました。
更新日:2022年03月13日
作成日:2021年4月26日
関連ページ:WordPress Search Replace DB (Version 3)の使い方
Search Replace DB のダウンロード
Search Replace DB をダウンロードするには公式サイトにアクセスしてフォームを送信して送られてくるリンクからダウンロードするか、Github リポジトリから直接スクリプトをダウンロードします。
公式サイトからフォームを送信する場合
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/
サイトにアクセスすると最初の方に以下のようなことが記載されています。
Download and/or Donate to Search Replace DB(意訳)
- フォームを送信する前にフォーム全体を確認してください。
- このツールは誤って使用するとリスクがあり、使用に対する責任は負いません。そのため、自分が何をしているかを認識(把握)してください。
- 希望しない場合は寄付する必要はなく、$ 0を入力してもダウンロードリンクが記載されたメールが届きます。
- また、Githubリポジトリから直接スクリプトをダウンロードして利用することもできます。
- メールが届かない場合は、ジャンクフォルダ(迷惑メールフォルダ)を確認してください。
- これはGPLV3ライセンスで配布されており、使用する前にこのライセンスの条件を知っておく必要があります。
※【重要】作業が完了したらサーバーからこのスクリプトを削除します(サーバー上にスクリプトを残しておくとデータベースが変更される可能性があるなどセキュリティ上のリスクになります)。
ダウンロード方法
ページに表示されている以下のフォームのチェックボックスの項目を確認し、チェックを入れます。
チェックボックスの項目は以下のようなことが記載されています。
- このスクリプトは、追加の保護と注意なしに本番サーバーで使用してはならないことに同意します
- 私は使用前にすべてのデータがバックアップされることを認めます
- 私は開発者であり、自分が何をしているのかを知っています。
名前とメールアドレスを入力し、「Donation to Search and Replace」のプルダウンから寄付する金額を選択します。プルダウンで「Other」を選択すると寄付なし($0)も可能です。
「submit to receive your download link」ボタンをクリックします。暫くするとダウンロードリンクが記載されたメールが送られてきます(※送られてくるメールは迷惑メールと判定される可能性が高いので、受信フォルダにない場合は迷惑メールフォルダ等をチェックします)。
以下のような注意事項の記載されたメールが送られてくるのでダウンロードリンク「here」をクリックするとスクリプトの zip ファイル(この時点では Search-Replace-DB-4.1.3.zip)をダウンロードすることができます。
以下は送られてくるメールに赤字で記載されている注意事項の意訳です。
- 重要:
-
- Search Replace DBはプロの開発者ツールであり、通常、コマンドラインツールを使用できない場合の移行を支援します。
- このツールがデータベースに簡単に損傷を与える可能性があることを理解していない場合は、使用せずに専門家を雇ってください。
- スクリプトが、フロントエンドから簡単にアクセスできない難読化されたサブディレクトリに配置されていることを確認する必要があります。
- 何らかの理由でスクリプトを永続的にオンラインに保ちたい場合は、最低限、スクリプトが存在するフォルダーにhttp認証を設定するようにます。そうしないと、サイトがハッカーに開かれたままになるリスクが高まります。
Github リポジトリから直接ダウンロードする場合
Githubリポジトリからスクリプトを直接ダウンロードすることもできます。Github リポジトリからダウンロードする Zip ファイルの名前(Search-Replace-DB-master.zip)にはバージョンはついていません。
インストール
ダウンロードした zip ファイルを展開します。
展開したフォルダ(Search-Replace-DB-master)をデータベースを編集するサイトの wp-admin や wp-content、wp-includes と同じ階層に配置します。
配置後、ブラウザで「http://ドメイン名/Search-Replace-DB-master/ 」にアクセスして以下のような画面が表示されればインストールは完了です。
HTTPS の環境で使用
本番環境で使用する場合は HTTPS 化された環境(https://)で使用します。
上記のスクリーンショットはローカル環境のもので、HTTPS 化されていないため上部に以下のような「Warning」が表示されています。
The network connection you are using is transmitting your password unencrypted. Consider using an https:// connection, or change your database password after using the script
※ https:// の環境でないと、入力するデータベースのパスワードが平文で送信されるため、 https:// の環境で実行するか、そうでなければ使用後にパスワードを変更するようにとの警告が出ます。
フォルダ名の変更
ダウンロードして解凍したフォルダ(ディレクトリ)の名前「Search-Replace-DB-master」は任意の名前に変更することができます。変更した場合は、アクセスする際には変更した名前を使います。
basic 認証の追加
展開したフォルダ(Search-Replace-DB-master)の中には、.htaccess ファイルがあるのでそこに basic 認証などを追加することもできます。
使い方
WordPress のサイトを移行する場合、以下のような準備をしておきます。
移行前の準備
- 万が一に備えて移行元のデータをバックアップ
- 移行元のデータ(全てのファイル)を移行先に設置
- 移行元のデータベースをエクスポート
- 移行先に空のデータベースを作成
- エクスポートした移行元のデータベースを移行先のデータベースにインポート
- .htaccess や wp-config.php を移行先の環境に合わせて修正
関連ページ:サーバ上の WordPress をローカル環境に移行
その後、Search Replace DB を移行先に配置(インストール)して使用します。
以下はプロダクション(本番サーバ)からローカル環境への移行で https://example.com(移行元)を http://example.localhost(移行先)に置換するような場合の例です。
この時点では、すでに .htaccess や wp-config.php を移行先の環境に合わせて修正し、移行元のデータベースを移行先にインポートしてありますが、移行先の URL にアクセスすると以下のような表示になっています。
例:http://example.localhost/
ブラウザで Search-Replace-DB-master を配置した URL (http://ドメイン名/Search-Replace-DBのフォルダ名/)にアクセスすると以下のような画面が表示されます。
例:http://example.localhost/Search-Replace-DB-master/
フォルダ名を変更している場合は、変更した名前の URL でアクセスします。
おおまかな使い方としては、データベースの情報を入力してデータベースへの接続を確認し、置換する文字列を指定して「Do a safe test run」でシミュレーションし、問題がなければ実際の置換を実行します。
version 3 ではデータベースの情報は自動的に取得されて補完されましたが、version 4 では手動でデータベースの情報を入力する必要があります。
データベースの情報が自動的に取得されなくなったことでセキュリティ的に向上しましたが、使用後は version 3 同様、サイトからスクリプトを削除します。
また、https:// の環境でない場合は、Warning が表示され、作業終了後にスクリプトの削除ボタンを押してスクリプトを削除すると、データベースのパスワードを変更するように促されます。
Database Details
version 3 では Database Details の部分が自動的に補完されましたが、version 4 では以下を手動で入力します。WordPress の場合、これらの値は wp-config.php に記載されています。
database name | データベース名 |
---|---|
username | データベースのユーザ名 |
pass | データベースのパスワード |
host | データベースのホスト名。127.0.0.1 または localhost などのホスト名を入力します。使用しているサーバーにより異なります。 |
port | ポート番号。省略可能(デフォルトのままであればおそらく、MariaDB5 の場合は 3306、MariaDB10 の場合は 3307。) |
上記の項目を入力したら「Test Connection」をクリックしてデータベースに接続できるかを確認します。
以下のように緑色で「Success. You are connected.」と表示されればデータベースに接続成功です。
SearchReplace
SearchReplace の「replace」には対象の文字列を入力し、「with」には置換後の文字列を入力します。
「+ add more search terms」をクリックして置換対象を追加することができます。
ドメインの置換であれば、「replace」には移行元(検索・置換の対象)の URL(またはその一部)を入力し、「with」には移行先の URL(またはその一部)を入力します。
何を置換対象とするかは、サイトの環境に応じて決定する必要があります。
例えば、単に example.com を example.localhost に置換すると、E-mail アドレス info@example.com も info@example.localhost に置換されるので必要に応じて置換対象に「//」やプロトコル部分(http:// や https://)を含めるか、置換後に修正するなどが必要になります。
Which Tables?
「Which Tables?」では置換対象のテーブルを設定することができます。
デフォルトでは全てのテーブルを対象とする「all tables」が選択されています。
「select tables」を選択すると全てのテーブルが表示されるので選択することができます。連続して選択する場合は Shift キー、連続してないテーブルを複数選択する場合は command キー(Mac の場合)や Ctrl キー(Windows の場合)を押しながら選択します。
必要に応じて対象のカラムや除外するカラムを設定することもできます。
Let's go
「Let's go」のセクションにある「Do a safe test run」を使うと置換のシミュレーションを行うことができ、「Search and Replace」では実際の置換を実行します。
Do a safe test run
「Do a safe test run」では、実際の書き換えは行われず、シミュレーションすることができます。
「Search and Replace」で置換(書き換え)を実行すると元には戻せないので、実際の置換を行う前に「Do a safe test run」を実行してどのように置換されるかを確認します。
変更があったテーブルには「view changes」というリンクが表示され、クリックするとどのように置換されるかを確認することができます。
※ この画面は右上の「x Close」をクリックして閉じることができます(元の画面に戻ります)。
Search and Replace
「Do a safe test run」で置換される内容を確認し、問題なければ「Search and Replace」をクリックして置換を実行します。
以下のようなアラートが表示されるので確認します。
「本当に置換の実行の準備は整っていますか? データベースのバックアップを取ってください!」
問題がなければ「OK」をクリックすると置換が実行されます。開始後、5秒間だけ「Stop」ボタンが表示されます。
以下の例ではマルチサイトで、「https://xxxxxx.net」を「http://xxxxxx.localhost」に置換するため、「replace」に「//xxxxxx.net」を、「with」に「//xxxxxx.localhost」を指定して変換し、その後プロトコル部分の変換を行うため「https://xxxxxx.localhost」を「http://xxxxxx.localhost」に変換しています。
必要に応じて、続けて置換のシミュレーションや実際の置換を実行することができます。
個人的なメモ:
この例の場合はマルチサイトなので、続けて更に一部のテーブル(wp_blogs、wp_site:実際にはプリフィックスを ky_変更している)で xxxxxx.net を xxxxxx.localhost に変換。
マルチサイトの場合、「xxxx_blogs」や「xxxx_site」テーブルがあり、それらの「domain」の値には「http://」などのプロトコル部分は含まれていない。
スクリプトの削除
画面を下の方にスクロールすると「delete me」ボタンがあるので、作業が完了したらクリックしてスクリプトの削除を実行します。
※置換作業が完了したら「delete me」ボタンをクリックしてサーバーからスクリプトを削除します。
「delete me」ボタンをクリックすると以下のアラートが表示されるので「OK」をクリックします。
以下が表示され、「Search-Replace-DB-master」内のスクリプトが削除されます。
以下は「delete me」ボタンをクリックしてサーバーからスクリプトを削除した後のフォルダの内容。スクリプトを削除後、再度置換を行うには 「Search-Replace-DB-master」を再度配置します。
また、https:// を使っていない場合は、以下が表示されパスワードを変更するように促される場合があるので変更します。
念の為、「Search-Replace-DB-master」ディレクトリも削除しておきます。