サイトの引っ越しなどで、URlの変更が必要な時に重宝するツール「Search Replace DB」の使い方を解説します。
ドメインが変わると、データベースの中に格納されているドメイン情報も新たなものに書き換えなければいけません。
その際、エディタ―等を使った直接置換だと、URL文字列の長さなどデータベース内の固有の情報(シリアライズされた情報)がうまく移行できない場合があります。
「Search Replace DB」はそうした情報もきちんと移行してくれる優れたツールです。
「Search Replace DB」は、定番プラグイン「BackWPup」使用した、URLを伴うサイトの移転などの際に使うと便利です。
URL変更時に問題となるシリアライズ
シリアライズは、理解しにくい専門知識です。なんとなく把握するだけでよいと思います。
シリアライズとは、ソフトウェア内部で扱っているデータをそのまま、保存したり送受信することができるように変換することです。
移転元のデータベースのワードプレスデータはシリアライズされています。
そのため、移転先データベースへの移行時にもシリアライズしなければなりません。
WordPressデータベースの wp_options テーブルには、アクティブなプラグインの設定値や、アクティブなテーマの設定値が保存されています。
これらの値はすべてシリアライズされています。また、多くのWordPressのプラグインは、wp_options テーブルに、固有の設定値を保存する機構になっており、設定値を保存する関数 update_option() を使うと、自動的にシリアライズして保存されるようになっています。
※引用 覚えておきたい「シリアライズ serialize」
Search Replace DB の使い方
Search Replace DBは、移転元DBデータ内のURLを、新たなURLへ置換すると同時に、シリアライズしてくれる便利なツールです。
そのダウンロード方法から使い方までを分かりやすく解説します。
ここでは、WordPressサイトを新しいURLに移転する場合を想定しています。
※置換を実行する前には、データベースのバックアップを取るようにしましょう。
ツールのダウンロード方法
Search Replace DBのサイトを開きます。
Risk checkにチェックし、名前とメールアドレスを入力します。
寄付の選択肢があるので、「Other or nothing」を選択。
「ニュースレターを受け取る」にチェックをします。(チェックしないと進めない)
ニュースレターは「いつでも解除できると書かれています。
最後にダウンロードリンクを受け取るためのボタンをクリック。
以下のようなメールが届きます。
hereと書かれたリンクをクリックします。
ファイルをWordPressのインストールフォルダにアップロード
ダウンロードしたzipファイルを解凍すると、「Search-Replace-DB-master」というフォルダが現れます。
これをFTPソフトなどで、WordPressのインストールフォルダにアップします。
場所は、ドメイン直下で、wp-admin、wp-content、wp-includesなどと同じ階層です。
アップしたフォルダはそのままサーバーに置いておくと誰でもサイトを書き換えることができてしまい、セキュリティ上大変危険です。作業終了後できるだけ早く削除しましょう。
ツールにアクセスして必要事項を入力
https://新ドメイン/Search-Replace-DB-master/ にアクセスします。
すると、以下のような画面が表示されます。
ここで、上から順に、
旧ドメイン(移転元)、新ドメイン(移転先)と、新ドメインのデータベース情報を入力し、「Tset Connection」をクリックします。
※間違って旧ドメインのデーターベース情報を入力しないように。
ドメインは、https://example.comのように最後のスラッシュは入れません。
データベース情報の入力項目は以下です。
新ドメインの情報です。
- データベース名
- データーベースユーザー名
- パスワード
- ホスト名
- port ※一般的なMySQLサーバーのポートは、3306
私は3306でうまく動作しました。(空欄でも上手く動作しました。)
※テーブルを指定して文字列の置き換う場合は「select tables」をクリック後テーブルを選択します。(普通は全部のテーブルでOK)。
データベース情報は、ドメイン直下(wp-adminなどと同じ階層)のwp-config.phpに記載しています。(port名は記載されていません)
必要な場合は、ダウンロードしてファイルを開きましょう。
テスト接続がうまくいったら、以下のようにグリーンのボタンが表示されます。
置換のテストを行う
次に「Do a safe test run」をクリックします。
これはテストで、実行しても、まだ実際の置換は行われません。
テスト結果が表示されます。
view changesをクリックすると、置換の結果がどのようになるかを見ることができます。
テスト置換の結果は以下のように表示されます。
確認後は右のCloseで閉じます。
以下のメッセージが表示されます。
これは一部のプラグイン (SEO関連のプラグイン「Yoast」)でうまく置換されないようなケースがあるといった注意喚起です。
これは実際に置換が完了した場合でも表示されます。
私も表示されました。同じメッセージが数多く表示され、赤くなっていたので、びっくりしましたが、「Yoast」は使っていないので、無視して進めました。
The dry-run option was selected. No replacements will be made.
Incomplete or ill-typed serialization data:: This is usually caused by a plugin storing classes as a serialised string which other PHP classes can’t then access. It is not possible to unserialise this data because the PHP can’t access this class. P.S. It’s most commonly a Yoast plugin that causes this error.
置換を行う
次は、いよいよ本番の置換です。
「Serch and Replace」をクリックします。
本当に置換を実行して良いか?
データベースはバックアップを取ってください。
といった内容のアラートが表示されます。
よく確認を行った上で、問題なければ「OK」をクリックします。
置換が行われます。
これで一連の作業了です。
繰り返しになりますが、ドメイン直下にアップロードした「Search-Replace-DB-master」フォルダは必ず削除しましょう。
下の方の「delete me」ボタンで削除できます。
※削除できるのですが、フォルダは残るようで、気になる方はFTPソフトなどで削除しましょう。
・サイトの引越しを自分でやってみたがうまくいかない
・あまり時間をかけたなくない
・安心・安全なサービスを利用したい