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

【注意】
★2021年11月現在、ver4がリリースされています。当記事ではver3を紹介しているので参考程度に留めて下さい。
※データベースを書き換えるツールのため、使用は自己責任で行って下さい。
※使用後はサーバーから必ず削除して下さい。

WordPressは何で出来ているか

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

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

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

シリアライズの問題

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

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

s:18:"http://example.com";

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

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

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

該当部分の引用

1. Use the Velvet Blues Update URLs or Better Search Replace plugins if you can access your Dashboard.
2. Use WP-CLI’s search-replace if your hosting provider (or you) have installed WP-CLI.
3. 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 ** )

1. ダッシュボードにアクセスできる場合は、Velvet Blues Update URLsまたはBetter Search Replaceプラグインを使用してください。
2. ホスティングプロバイダ(またはあなた)がWP-CLIをインストールしている場合は、WP-CLIの検索置換を使用してください。
3. Search and Replace for WordPress Databases Script を使用して、古いドメインまたはパスにあるすべてのインスタンスを新しいドメインに安全に変更します。(** このオプションは、データベース管理に慣れている場合のみ使用してください ** )

https://wordpress.org/support/article/moving-wordpress/

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

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」を選択すると置換が実行されます。

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

2 件のコメントが “DB置換ツール「Search Replace DB (ver.3)」の使い方” にあります。

コメントを残す

メールアドレスが公開されることはありません。