WordPressでWebサイト制作を請け負っていると、はじめは仮ドメインに設置 → 公開のタイミングで本ドメインに切り替える作業が必要になることがあります。

移設の難しさ

しかしながら、初めてこの作業を行うと結構苦労します。移設を行う場合の一番の問題点は、公開URLが変更になることです。
公開URLが変更になることで下記のような問題点が起こります。

  1. 公開URLの設定が正しくないとWordPressの管理画面にログインができなくなる。
  2. テーマファイルのCSSやJavaScriptが読み込まれないためデザインが崩れる。
  3. 記事中に設定したリンクや、メディア(画像やファイル)のリンクが切れて表示されなくなる。

1と2に関しては公開URLの設定さえ元に戻してしまえば問題無いのですが、一番の悩むところは3で、記事中に設定した内部リンク、画像、添付ファイルなどが全てリンク切れを起こしてしまうことです。

プラグインを使用する方法

初心者の方はプラグインを利用すると比較的簡単に別ドメインに移設することができます。様々なプラグインがありますが、個人的なおすすめは、「Duplicator」というプラグインです。これを利用することで、現在運用しているサーバの記事だけでは無く、テンプレートやプラグインの状況を含めて、まるごとそのままほかの環境にコピーすることができます。

詳しくはこちらの記事をご覧下さい。

プラグインを使用しない方法

続いて、紹介するのは、プラグインを使わない方法です。下記で公開されている「SEARCH REPLACE DB」というスクリプトを使用します。

searchreplacedb_02
interconnect/it

海外の方が開発されCODEXにも記載されている非常に有用なスクリプトで、シリアライズされたデータも含めて、データベースにあるレコードから特定の文字列を一気に置換することが可能です。

それでは、ドメインの移設方法を説明していきます。

WordPressのバックアップ

まずは、現在のWordPressのデータベースとWordPressフォルダ一式をバックアップします。

現在のWordPressサイトのアドレスを変更

バックアップが終了したら、現在のWordPressサイトにログインし、「設定」→「一般」より、
WordPressアドレスとサイトアドレスを変更します。

searchreplacedb_01

※この変更を行うと、直後に404エラーが表示されますが、正常な動作です。

またこの変更により、データベースの「wp_option」→「siteurl」が変更されます。
万が一設定ミスがある場合には、phpMyAdminより元に戻してください。

WordPressフォルダのアップロード

先ほどバックアップを取っておいた、WordPressフォルダ一式を新規ドメインのルートフォルダにアップロードします。これで先ほど変更したアドレスにアクセス出来るようになっています。
しかしながら、現在のままでは設定したリンクや、メディア(画像やファイル)のリンクが切れて表示されていません。そこでリンクを変更するために「SEARCH REPLACE DB」を使用します。

「searchreplacedb21」のダウンロード

まずは下記より「searchreplacedb21」をダウンロードしてください。

searchreplacedb21

解凍し、WordPressと同ディレクトリにアップロード

解凍した「searchreplacedb21.php」ファイルをWordPressのwp-config.phpが存在するディレクトリへアップロードしてください。

searchreplacedb_03

ファイルにアクセス

http://ディレクトリ名/searchreplacedb21.phpにアクセスし、以下の画面が表示されます。

searchreplacedb_04

Submitをクリックして次に進みます。

データベース情報の確認

wp-config.php と同じディレクトリにアップされていれば、自動的にwp-config.phpに存在する情報を読み取って表示してくれます。

searchreplacedb_05

Submitをクリックして次に進みます。

書き換えるテーブルの選択

書き換えたい文字列があるテーブルを選択します。
最低限、投稿本体が格納されている posts およびにカスタムフィールドの格納されている postmeta、設定値が格納されている options は選択してください。

searchreplacedb_06

検索する文字列と置換する文字列の入力

Search for (case sensitive string): には検索する文字列(旧ドメイン)を入力し、
Replace with: には置換する文字列(新ドメイン)を入力し、
「Submit Search string」ボタンで次に進みます。

searchreplacedb_07

WordPressを移設した場合は、以前に設置してあったURLを検索する文字列に、新しく設置した先を置換する文字列に指定します。

例えば http://example.com/wp に設置してあったWordPressを http://test.jp/ に移設した場合は、下記のように記述してください。

検索する文字列
example.com/wp
置換する文字列
test.jp

ポイントは「http://」と最後の「/」を抜くことです。

これはデータベースの中に http:// を抜いたドメインの状態で保存されているレコードがあるため、一部書き換わらないレコードが出てきてしまうためです。

置換完了

これで置換が完了しました。

searchreplacedb_08

最後に置換が完了したら、設置した「searchreplacedb21.php」を削除してください。
※放置しておくとパスワード認証もなくデータベースが書き換わる可能性があります。

以上でWordPressを設置したドメインを書き換える作業が全て完了します。

まとめ

ドメイン変更作業は慣れれば簡単にできますが、手順を間違えると大変修復に時間がかかりますので、必ずバックアップをとり、作業を行いましょう。

テスト環境から本番環境に移動される方、ドメインを変更したい方。移設で悩んでいた方はぜひ参考ください。

また、長く運用したドメインから新しいドメインに引っ越しする場合は、元のドメインパワーを失うリスクが発生します。当サイトも10年間使用したドメインを捨てて新しいドメインに引っ越しした経緯があります。

その時に行った対策を下の記事で紹介していますので、ご興味ある方はどうぞ。