Wordpressテスト環境の構築方法について(データベースの複製)

Wordpressテスト環境の構築方法について(データベースの複製)

Wordpressテスト環境の構築方法について(データベースの複製)

別区画にインストールしたWordpressでは、本番環境のDBを読み込む事はできません。

基本的にDBデータを複製して、optionsテーブルのURLを別区画にあわせる必要があります。

レンタルサーバーによっては同じサーバー内にDBを新設できない場合があります。

Wordpressテスト環境の構築するためには

クライアントのWordpressサイトをデザインリニューアルする場合、通常はテスト環境を準備します。

テスト環境も本番と全く同じサイトデータから始めるのがセオリーですよね。

テスト環境でリニューアルデータの確認をし、問題なければ本番データと差替えます。

Wordpressのテスト環境はHTMLサイトと違って、別ディレクトリにデータをUPすれば済むものではありません。

そこで本記事では、比較的簡単にWordpressのテスト環境を作る方法をご紹介します。

Wordpressシステムの準備

Wordpressの別区画へのインストール

まず最初に、テスト専用のディレクトリ内にWordpressをインストールします。

本番サイトのWordpressが影響を受けない場所、例えば「test/」などを作りその中にもう一つWordpressを入れる訳です。

今はレンタルサーバーのコントロールパネルからWordpressが簡単にインストールできますよね。

インストール時に決める「従来DB or 新規作成DB」や「ログイン情報」は自由にして頂いてOKです。

※この設定は最後には使わなくなるからです。

データファイルの移設

次にテスト環境も本番環境と全く同じにするための準備が必要です。

テーマファイル・プラグインファイル・uploadの画像ファイルなどは全てコピーして、test区画にアップしておきましょう。

漏れの無いように注意が必要です。

本番環境のDB情報を読むとどうなるか?

ここからWordpressで重要となるデータベース(以下:DB)との紐づけに入ります。

私も初心者の事は以下の仮説を考えていました。

テスト区画から同じDBデータを読み込む

WordpressはDBを利用しているから、test区画からも同じDB情報を読み込めば良いのでは?

このように思っていた訳です。

つまりテスト区画のwp-config.phpのDB情報を、本番環境に記載されたDB情報と同じにすれば良いのです。

そうすれば同じDBデータを両方(本番・テスト)のWordpress管理画面から利用できそうですよね。

しかし当り前ではありますが、この方法では上手くはいきません。

1つのDBデータを別区画から利用する事はできない

ログインは確かに本番環境と同じ情報でログインできますが、テスト区画ではなく本番環境の管理画面が表示されてしまうはずです。

サイトを表示させても/testではなく、本番環境がそのまま表示されます。

DBは紐づけられたURLでしか動かない

本番データのDBには、基本情報として「ドメイン名」のURLが紐づけられています。

DBテーブルで言うと、optionsテーブルの「siteurl」や「home」の欄がそれにあたりますね。

optionsテーブルのURLデータ

今回は別途test区画で構成しようとしていますから、ここが「ドメイン名/test」になっていないと機能しない訳です。

しかしここが本番のままなので、本番Wordpressの管理画面が出ますし表示サイトも本番サイトが出る訳です。

※つまりDBデータは決められたURLでしか動かない事になります。

これで共通のDBデータを複数区画のWordpressから利用する事はできない事がわかったと思います。

データベース自体を複製する

では別区画のWordpressから同じDBデータを読む方法をご紹介します。

簡単に言ってしまえば、DBデータを複製コピーする事になります。

phpMyAdminソフトを活用

phpMyAdminなどのDBソフトが利用できるレンタルサーバーが多いので、そのソフトを使ってコピーしていきます。

phpMyAdminが使える様になれば、DBを複製するのも簡単にできます。

データベースの作成方法

まずはphpMyAdminで複製先となるDBを作成する事になります。

しかし例えばロリポップなどレンタルサーバー会社によっては、DB作成機能に制限を掛けているところがあります。

DBの作成権限がない状態

その場合はphpMyAdminからではなく、レンタルサーバー会社の管理画面からDBを作成する事になります。

あなたの環境もphpMyAdminからDBが作れない場合は、レンタルサーバーの管理画面へ進みましょう。

ロリポップのコントロールパネルからDB作成

下の画像はロリポップコントロールパネルのDB作成画面です。

ロリポップのDB作成画面

ここで新しくDBが作成できます。

サーバー:現在選択されているサーバー名のまま
DB名:任意
パスワード:任意

以上の情報でまずはDBを作成しておきましょう。

phpMyAdminでのDBコピー

本番環境のDBサーバーへログイン

新しくDBを作成したら、phpMyAdminを使って本番環境のDBへとログインします。

ログインには本番環境のユーザー名とパスワードとDBサーバー名が必要になります。

これらは全て、本番サイトのwp-config.phpに記載がありますので確認してください。

データベースのコピー方法

DB名をクリック

ログインしたら左の欄にあるDB名(複数あるかも知れません)から、本番サイトに使っているDB名をクリックします。

するとテーブルの構造が表示されるので、上部に並ぶ「操作」タブを開けましょう。

操作タブをクリック

下に「データベースのコピー先」の欄がありますので、コピー先となるDB名(先ほど作成したDB)を入力します。

「構造とデータ」にマークが付いた状態にし、下のチェック項目はそのままにします。

しかしここで実行してもエラーが出ますので、実行しないで下さい。

問題発生

ここまで操作をしてお気づきの方もいらっしゃるかもしれません。

そうです。先程コントロールパネルから作った新しいDBがこのホスト上に無いのです。

作成したDBが存在しないのでエラーとなるのです。

作成したDBが無い理由

作成したDBが無い理由は明白です。作成したサーバー先が違うのです。

DBホスト名が153になっている

新しいDBは「mysql153.phy.lolipop.lan」サーバーの中に作成されています。

Wordpressのテーブルの入ったサーバーと違うサーバーにDBを作ったため、出てこないのですね。

現在コピー作業中のサーバー:mysql147.phy.lolipop.lan
ロリポップで作ったDBが入ったサーバー:mysql153.phy.lolipop.lan

同じサーバー名でDBが作れる場合と作れない場合がある

しかし先ほどDBを作った時にサーバー名の選択項目を見ましたが、147…はありません。

ですから仕方なく153…で作ったのです。

選択可能なDBサーバー一覧

レンタル会社側が1サーバーあたりのDB数を調整

結論から言うと、ロリポップ側の都合で同じサーバー名の中にDBが作れる時もあれば、作れない事もあるのです。

今回の場合は作る事ができませんでした。

余裕のあるサーバー名のみが表示される

しかし項目の中には前の番号のサーバー名が残っているものもあります。

おそらくDBの数を調整しているため、まだ全体の作成数に余裕があるサーバー名だけが表示されているのだと思います。

つまり時間が経過すればするほど、同じサーバーの中にDBが作れる可能性が低くなる訳ですね。

DBが2つ以上ある場合

ここからはDBの環境に応じたパターンごとに操作していきます。

私の場合は同じサーバー名の中に現在稼働していない別DBがありました。

データベースのコピーを実行

先ほどエラーになったDBのコピー先に、もう一つのDBを指定して実行します。

複製されたテーブル群

これによりDBの中に本番環境と同じテーブル群が生成されます。

optionsテーブルの編集

次に複製した方のoptionsテーブルを探してクリックします。

表示タブでデータの中身が表示されていますので、最上段付近にある以下2つを探します。

・siteurl
・home

それぞれの「ドメイン名」を「ドメイン名/test」へそれぞれ編集します。

optionsテーブルの構造

各項目の左にある編集ボタンを押すと編集画面が出ますので、適切に変更して「実行」を押しましょう。

編集画面

wp-config.phpの編集

テスト環境内のwp-config.phpの中で、DB名の部分を変更します。

そこ以外は変更する必要はありません。

サイト確認

これでドメイン名/testで上手くサイトは表示されるはずです。

本番と同じ情報で/testの管理画面にもログインできるはずです。

DBが一つしかない場合

先ほどは別のDBが同じホストサーバーの中にあったのでコピーできましたが、DBが一つしかない場合はどうすべきでしょうか。

ここでは以下2つの方法をご紹介します。

別名にリネームして複製

一番は本番データの構成テーブルを一つずつコピーして、別の接頭語を付けたテーブルへリネームする事です。

複製したテーブル群

少し手間が掛かりますが、同じDB内に接頭語を変えてテーブル群を複製します。

例えばDBの中に10個のテーブルがあったら、接頭語を変えたテーブルが10個増えて合計20個になります。

接頭語を変えたoptionsテーブルのURLを変更

接頭語を変えたoptionsテーブルのURL編集が必要です。

wp-config.php内の接頭語部分を変更

test区画のwp-config.php の「接頭語」欄の編集が必要です。

エクスポートして別ホストへインポート

もう一つの方法としては、別ホストへテーブルデータを移設する事です。

本番のDBデータをエクスポートして、別ホストのDBに丸ごとインポートします。

先ほどの例で言えば、142のホストでテーブル群をエクスポートし、153のホスト内にインポートする訳ですね。

optionsテーブルのURLを変更

インポートしたoptionsテーブルの編集が必要ですね。

wp-config.phpのDBサーバー記述部分を変更

test区画のwp-config.php のDBサーバー情報を、153の情報に書き換えましょう。

まとめ:DBの環境に応じた設定

DBの環境によって変わる、phpMyAdminの操作とwp-config.phpの設定をまとめてみました。

環境 phpMyAdmin操作 wp-config.phpの設定
新しいDBが
同じホスト内に作れる場合
データベースのコピーを使う データベース名のみ変更
新しいDBが
同じホスト内に作れない場合
接頭語を変えてテーブル群を複製 接頭語のみ変更
別ホストへDBインポート ホスト名のみ変更

wp-config.phpのDB情報部分

wp-configのDB情報部分

wp-configの接頭語部分

この記事をシェアする

一押し人気コーナー紹介

Wordpressテーマカスタマイズ系記事