2018.07.29 

【PHP7対応】DB置換ツール「Search Replace DB」の使い方

ツール


今回は、WordPressを運用しているドメインを変更する際に必要になる、データベースのドメイン置換の方法をご紹介します。

【注意】
※データベースを書き換えるツールのため、使用は自己責任で行って下さい。
※使用後はサーバーから必ず削除して下さい。

もくじ
  1. WordPressは何で出来ているか
  2. Search Replace DB のダウンロード
  3. Search Replace DB の使用方法

WordPressは何で出来ているか

そもそもWordPressは何から出来ているか?を把握する必要があります。
大きくわけて二つあり、PHPで出来たコアファイルやテーマ・画像などの「実ファイル」。そして様々なデータを記録している「データベース(SQLファイル)」の二つ。

「実ファイル」はサーバー上の移動でもかまいませんが、問題になってくるのは「データベース(SQLファイル)」の方。こちらには、運用していたドメイン情報やパスの情報が記載されています

ということは、別のドメインになるとデータベースにあるドメイン名と食い違うのでサイトが機能しなくなります。

シリアライズの問題

じゃあ「データベース(SQLファイル)」をエディタの一括置換で書き換えればいいじゃんアホか。となりそうですが、コトはそう簡単じゃありません。

データベース内ではシリアライズがされています。
例えば example.com というドメインで運用していたとすると以下のように記録されています。

URLの文字数18字が s:18 (型:値(バイト数))という形で保存されています。
この状態でドメイン名を変更すると、文字数とドメインの整合性がとれなくなるので不具合が起こってしまいます。

ドメイン名の置換とともにシリアライズされた数値を変更することができるのが、今回ご紹介する「Search Replace DB」というツールです。WordPress公式でも推奨されています。

公式サイト(英語)
Moving WordPress « WordPress Codex

該当部分の引用

1. Use the Velvet Blues Update URLs plugin if you can access your WP Admin Dashboard.
2.Use the Better Search Replace plugin if you can access your WP Admin Dashboard.
3.Use WP-CLI’s search-replace if your hosting provider (or you) have installed WP-CLI.
4.Use the Search and Replace for WordPress Databases Script to safely change all instances on your old domain or path to your new one. (** only use this option if you are comfortable with database administration ** )

今回はこの4つ目の方法となります。

Search Replace DB のダウンロード

まず、以下のサイトよりツールをDLして下さい。
各項目を埋めて送信するとメールでDLリンクが届きます。

公式サイト(英語)
Database Search and Replace Script in PHP

届いたメールには以下のように書かれています。
今回は PHP7対応の ver3.1.0 を使用するので here をクリック。

Download Search Replace DB v 3.1.0 here. Use it carefully! If you have compatibility problems or are running on an older server for whatever reason, then please use v 2.1.0

ちなみに以前は、今回ご紹介する ver3.1.0 が無く、しかたなくPHPのバージョンを落として作業をしていたりもしました(泣)。

Search Replace DB の使用方法

ダウンロードしたフォルダをサーバーにアップロードします。
アップロードする場所はWordPressをインストールしたディレクトリ(「wp-config.php」と同じ階層)です。

そして、http://新しいドメイン名/Search-Replace-DB-master/ にアクセスします。

※ver2の時は「searchreplacedb2.php」というphpファイルをアップロードしてアクセスしましたがver3ではフォルダにアクセスすることになります。

アクセスすると以下のような入力画面になります。

① 置換するURLを入力します。例えば、http://example.com → http://example-new.com ならば 左側に example.com 右側に example-new.com です。サブディレクトリも含む場合はexample.com/sub → example-new.com/sub となります。 (※URL最初のhttp://・https:// 、そして最後のスラッシュ / は入れません。)

② データベースの情報が表示されます。

③ テーブルを指定して文字列の置き換えを行いたい場合は「select tables」をクリック後テーブルを選択します。(通常は all tables のままでOK)

④ 「dry run」で試し走り、実行するとどれだけ変更されるのか確認できます。「live run」を選択すると置換が実行されます。

⑤ 使用後はこちらをクリックしてサーバーからファイルを削除しましょう。(※必ず行って下さい!)


  1. この記事へのコメントはありません。