1つのデータベースで2つのWordPressサイトを管理する方法

#はじめに

##<font color="Crimson">大事なデータを扱う前は必ずバックアップをとってから行いましょう！責任とれません！
</font>

プログラミング歴2ヶ月の素人が書いています。（間違っていたらご指摘ください）

「1つのデータベースで２つのWordPressサイトを管理する」ための学習メモです。

* サブドメインを使用します。

* レンタルホスティングサービスとしてGoDaddyを使用しています。

* データテーブル名の接頭辞を変更し、２つのサイトで１つのデータベースを使い分けます。



#今回の目的

GoDaddyの一番安いプランでホスティングサービスを契約し、メインのドメインとサブドメインで２つのWordPressサイトを立ち上げます。

一番安いプランだと1つのデータベースしか作成することができませんが、データテーブル名の接頭辞を変更して２つのサイトを管理します。


#サブドメインの作成

ホスティングサービスのcPanel（またはそれに相当する管理画面）からサブドメインを作成します。

![Screen Shot 2019-08-28 at 14.19.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452235/7292942a-db7c-1934-d31c-c0d4f61ecebb.png)


* Subdomain: 使用したいサブドメインを[Subdomain]に入力します。

* Domain: メインドメインを選択します。

* Document Root: 自動で入力されます。（ここにサブドメインで使用するサイトのディレクトリが作成されます。。）

「Create」を押すと、サブドメインとそれに対応するディレクトリが自動で作成されます。


#ディレクトリの確認

サブドメインを作成したら、「File Manager」を確認し、`public_html`内にサブドメイン用のディレクトリができていることを確認します。

![Screen Shot 2019-08-28 at 14.23.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452235/8f98d4a8-0f7b-8ea0-d12b-d323fa88834d.png)


サブドメインと同名のディレクトリ内に、Wordpressを展開していきます。


#データベースのユーザ設定

データベースのユーザー設定をしたことがない場合は、
cPanelの「MySQL® DataBase」から新規ユーザーの作成を行います。


![Screen Shot 2019-08-28 at 14.29.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452235/da6a3663-2695-8f9a-ac5d-2935aac6d476.png)


名前とパスワードはどんなものでも構いませんが、あとで使用するので控えておきます。


#メインドメイン用データベースをエクスポート

cPanelの「phpMyAdmin」から、データベースにアクセスします。
メインドメイン用サイトのデータベースのエクスポートを行います。

Sqlファイルをエクスポートしてダウンロードします。

![Screen Shot 2019-08-28 at 14.33.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452235/a7af8764-846e-a3d0-207a-2155741d0cab.png)



#テーブル名の接頭辞を変更する

テキストエディタで先ほどダウンロードしたsqlファイルを開きます。
文字の一括置換を使用し、`WP_`という文字列を別の文字列に変更します。（例えば`WP2_`など）

![Screen Shot 2019-08-28 at 11.38.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452235/fd90b68c-2d05-9225-03b4-e97e7c755fb5.png)


#メインドメイン用サイトの`wp-config.php`を変更する

cPanelの「File Manager」から、`wp-config.php`を開き、以下のコードを書き換えます。

```php
/**
 * WordPress データベーステーブルの接頭辞
 *
 * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
 * インストールすることができます。半角英数字と下線のみを使用してください。
 */
$table_prefix = 'wp_';
```

`$table_prefix = 'wp_';`のイコール以下を、先ほど一括置換した接頭辞に書き換えて保存します。


#サブドメイン用WEBサイトのアップロード

FTPクライアント、またはcPanelの「File Manager」から、サブドメインのディレクトリにワードプレスファイルを展開します。手順は以下で説明します。

##「Dupulicator」でサイトのコピーZipファイルを作成する

すでにローカル環境で準備したサイトがある場合は、以下記事も参考になるかもしれません。

**『GoDaddyでサーバとドメインを借りてローカル環境でテストしたWordpressサイトをデプロイする方法』**
https://qiita.com/shin-ph/items/ef87d163f1f094c7f24a


「Dupulicator」というプラグインを使用することで、Wordpressサイトのコピーzipファイルとインストーラを作成することができます。

作成したWordpressサイトのコピーzipファイルとインストーラを、サブドメインのディレクトリにアップロードします。


##サブドメイン用サイトを展開してインストールする

「`http://サブドメイン/installer.php`」にアクセスすることで、インストーラが起動します。
基本的に設定を変える必要はありませんので、指示にしたがってzipファイルを展開します。

![Screen Shot 2019-08-28 at 11.39.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452235/731e046c-1002-ca8e-afc2-48d02829981d.png)


Step2で「Connect and Remove all the data」を選択します。
これによって、既存のデータベース（メインドメイン用）は全てサブドメインのデータベースに置きかわります。

あとは指示にしたがってインストールを終了させます。


##サブドメイン用サイトの確認

インストールが終了したら、サブドメインにアクセスし、サイトがきちんと動くかどうか確認します。
動いていれば、サブドメイン用サイトの設定は終了です。



#メインドメイン用サイトのデータベースを追加

既存のデータベース（メインドメイン用）は全てサブドメインのデータベースに置きかわってしまいましたので、このままではメインドメイン用のサイトは動きません。

cPanelの「phpMyAdmin」から、データベースにアクセスします。
データベースのインポートを行います。

![Screen Shot 2019-08-28 at 14.59.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/452235/2023e8ee-37eb-e8e9-25ca-7b1867ef83e0.png)


先ほど編集したSqlファイルをインポートします。

接頭辞を変更したメインドメイン用サイトのデータベースが追加されます。


##メインドメイン用サイトの確認

メインドメインにアクセスし、サイトがきちんと動くかどうか確認します。
動いていれば、メインドメイン用サイトの設定は終了です。


#まとめ

一番安いプランだと、データベースを１つしか作れませんが、テーブル名の接頭辞を変更することで、2つのサイトを持たせることができます。