サブドメインからメインドメインに変更してデータベースは同一のものを使う
こんにちは、トシキです。
今回はWordPressサイトのデータベースはそのままで、使用中のサブドメインをメインドメインに変更する方法を解説します。
今回のサンプル↓
・メインドメイン(旧サイト):tosshii-portfolio.com
・サブドメイン(新サイト):hoge.tosshii-portfolio.com
変更後↓
・メインドメイン(新サイト):tosshii-portfolio.com
本記事の内容
スポンサードサーチ
【1】ドメインのみ変更してデータベースは同一のものを使う手順

これから紹介しますが、サーバー上のファイルやデータベースを触る前には、必ずバックアップを取っておきましょう!
1-1. 新旧2つのWordPressファイルをバックアップ
まずはFTPでサーバーに接続し、新旧2つのWordPressファイルをダウンロードしてバックアップを取ります。

1-2. phpMyAdminでデータベースをバックアップ
データベースのバックアップも取っておきます。
レンタルサーバーの管理画面からphpMyAdminにログインします。

ユーザー名とパスワードを求められるので、該当のデータベースに設定しているユーザー名とパスワードを入力しましょう。

※もしわからない場合は、先ほどダウンロードしたWordPressファイルに「wp-config.php」があるのでそこで確認できます↓

phpMyAdminにログインできたら、「データベース名」→「エクスポート」→「実行」でダウンロードします。

1-3. サーバーからWordPress(旧サイト)を削除して、その場所にWordPress(新サイト)を移動
public_html直下に旧サイトのWordPress一式があるので削除。
その後、サブドメイン「hoge.tosshii-portfolio」フォルダ直下にある新サイトのWordPress一式をpublic_html直下に移動させ、空になった「hoge.tosshii-portfolio」フォルダは削除します。
1-4. データベース内のドメインを書き換える
ドメインが変わると、データベース内に格納されているドメイン情報を新たに書き換える必要があります。
今回は、「Database Search and Replace Script in PHP」というツールを使って書き換えを行っていきます。
アクセスしたら名前とメールアドレスを入力します。

入力後、下にある「Submit to receive your download link」をクリックして送信。

入力したメールアドレスにダウンロードリンクが送られてくるので、「here」の部分をクリックしてZIPファイルをダウンロード→解凍します。

解凍後のファイル↓

解凍したファイルをドメイン直下(public_htmlの中)にアップロードします。

「https://変更後ドメイン/Search-Replace-DB-master/」にアクセスしましょう。
今回の場合は、
「https://tosshii-portfolio.com/Search-Replace-DB-master/」です。
下記の画面が表示されますので、この中でドメイン情報を書き換えていきます。

replceの欄に変更前ドメイン、withの欄に変更後ドメインを入力。
今回の場合は、サブドメインを検索してメインドメインに書き換えたいので、
replace→hoge.tosshii-portfolio.com
with→tosshii-portfolio.com
を入力します。
ドメインを入力したらデータベース情報も入力。(わからなければ「wp-config.php」で確認)
database name→データベース名
username→ユーザー名
pass→パスワード
host→ホスト名
port→ポート番号(省略可能)
入力後、「Test connection」をクリックすると書き換え該当箇所が確認できます。 「view changes」で詳細が見れますが、全部に目を通すのは大変なので何ヵ所かだけさらっと確認。


「Search and Replace」をクリックして書き換えを実行します。

以下のようなメッセージが表示されるので「OK」。

書き換えが済んだら、「Search-Replace-DB-master」は使わないので「delete me」でサーバーから削除します。

サーバーを確認して、もし「Search-Replace-DB-master」の空のフォルダが残っていた場合はこれも削除。

変更後のメインドメインにアクセスすると、新サイトが表示されるようになります。
1-5. データベースから旧サイトのテーブルを削除
使わなくなったテーブルは削除しましょう。
無理に触らなくても問題ありませんが、データベース内がスッキリします。

上記の画像は接頭辞「wp_」のテーブルを削除するところです。
「hoge_」のテーブルは新サイトの方です。
バックアップしていた新旧2つの「wp-config.php」から「$table_prefix」の記述を探すと、それぞれどの接頭辞が使われているか確認できます。

旧サイトの接頭辞が「wp_」だったのでそれを削除。
接頭辞はWordPressインストール時に、データベース情報の入力画面で決めた文字列です。
初期値は「wp_」になっています。
ひとつのデータベースに複数のWordPressをインストールする際は、2つ目以降は接頭辞が被らないようにする必要があります。
よって初期値の「wp_」をひとつ目のWordPressに使っている場合、2つ目は「wp_」ではない接頭辞にするということです。
【2】終わりに

ドメインのみ変更してデータベースは同一のものを使う手順を解説しました。
正直なところ、作成できるデータベースが無制限のサーバーならば、新規で設置してWordPressをインストールした方が手っ取り早いですね。
もし作成できるデータベース数に制限があったり、マルチサイトで運用したい場合などは既存のデータベースを使うことになります。
もう一度流れをまとめると以下の作業を行いました。
- 新旧2つのWordPressファイルをバックアップ
- データベースをバックアップ
- サーバーからWordPress(旧サイト)を削除して、その場所にWordPress(新サイト)を移動
- データベース内のドメインを書き換える
- データベース内の旧サイトのテーブルを削除
最後になりますが、基本的にデータベースの情報を知りたい時は「wp-config.phpを確認する」と覚えておくといいですね。
人気記事Webサイトにフォントサイズ変更ボタンを実装する方法(jQuery使用)
人気記事【脱jQuery】スクロールしたら画面上部に追従ヘッダーを表示する方法