前回の記事でWordPressテストサイトの必要性を書きました。
本記事ではWordPressのテスト検証環境を構築する方法をご紹介します。本番サイトが稼働中であること、ローカル環境等ではなく同一サーバー内に作成すること、サブドメインが設定可能であること等前提として進めていきます。また一例としてXserver上の作業として進めます。その他レンタルサーバーの場合は大きい違いはないと思いますが、細かい設定の違いがあるため環境に合わせて設定ください。
今回対象とするサイトは、Xserver上にあるテストサイトをそのまま複製して利用します。
目次
なんで同一サーバー上に作るの?
ローカル環境や別サーバーでもいいですが、PHPやMySQL、サーバー独自の環境設定等により、できるかぎり同じ環境でテスト環境を作成することをおすすめします。
環境が異なることにより、「テスト環境ではエラーは起こっていなかったのに本番環境ではエラーが起こっている」などの問題が発生します。そもそもテスト環境を作成することがリスク回避の目的が強いと思うため、用意できない場合を除き、本番環境と同一サーバー内に用意しましょう。
では設定に進みます。
先に設定!テストサイト用のサブドメインを登録
Xserverのサーバーパネルへログイン後、「ドメイン」内にある「サブドメイン設定」を選択します。
ドメイン選択画面が表示されるので、利用するドメインを選択し、次の画面で「サブドメイン設定の追加」タブをクリックします。
サブドメインに任意の名称を入力し、メモが必要ならコメントに記載します。独自SSLを設定するかしないかを選択し(本番サイトと同様に設定することをおすすめします)、「サブドメイン設定の追加」をクリックします。確認画面で確認し、問題なければ「確定」をクリック。
数秒後画面が切り替わり、追加完了です。
サブドメインとSSLの反映に約数時間かかります。これでサブドメインの設定は完了です。
初期ドメインの活用も有り
独自ドメインのサブドメインを使うのでも良いですが、もし初期ドメインが余っていて活用していない、という場合は初期ドメインをテスト環境として利用するのも有りです。
その場合も、PHPや各種設定等は本番環境と合わせて置くようにしましょう。
初期ドメインの活用方法やテスト環境として利用するメリット・デメリットなどについては以下にまとめてあります。
参考: レンタルサーバーの初期ドメインは放置せずテスト環境に使える
また、別ドメインを取得したり無料ドメインを利用する方法もあります。それぞれの選択肢の紹介と事前に知っておきたいリスクについてまとめました。
参考: テスト環境を作るときのドメインの選択肢と把握しておきたいリスク
PHPや設定項目などを合わせておく
同一環境にするため、本番サイトと作成したテスト環境のPHPのバージョンやその他設定項目などを合わせておきましょう。まずはPHPのバージョンです。「PHP」内の「PHP Ver.切替」をクリックし、作成した対象ドメインを選択。
本番サイトのバージョンと異なる場合、「変更後のバージョン」を本番ドメインの方に合わせておきましょう。
その他環境設定の例として、Xserverでは「PHP高速化設定(FastCGI化)」が設定できます。ここも本番サイトで設定した項目と揃えておくことをおすすめします。
その他、環境ごとに設定した項目などあれば同じように合わせておきます。
移行元サイトのデータをエクスポート
ここからは移行元サイト(本番サイト)の作業です。移行元サイトのデータベースとウェブデータ一式をエクスポートし、サイトのデータをまるごとダウンロードします。移行先ではこのデータを利用し本番サイトを複製します。
簡単にテスト環境が構築できるプラグインをインストール
サイト複製の方法として、「FTPでウェブデータを一式ダウンロード&アップロードし、データベースはphpMyAdminでエクスポートする」、というような方法や、「sshでアクセスできる方はウェブデータを圧縮し、データベースはmysqldumpでエクスポートする」・・・というような方法でももちろん可能なのですが、ここでは簡単にサイトを複製できる方法としてWordPressのプラグインを利用します。
All-in-One WP Migration をインストール
利用するプラグインは All-in-One WP Migration | WordPress.org です。このプラグインはウェブデータとデータベースを一式生成しエクスポートし、そのデータを元に移行先サイトからインポートすることでサイト移行を簡単に行なえます。優れている機能として、移行元と移行先のURLの置換作業を自動でおこなってくれることです。移行元サイトがサブディレクトリ形式( http://example.com/wp )、移行先サイトがサブドメイン形式( http://test.example.com/ )でも問題なく自動置換できました。また、spamコメントをインポートしない設定や、メールアドレスに利用しているドメインは置き換えしない設定が選択できたりと、細かい設定も可能なところも使いやすい上に、日本語対応しているため安心して利用できます。
本番サイトにログインし、新規プラグイン追加から「All-in-One WP Migration」を追加しましょう。WordPress.org からダウンロードしたものをアップロードしても構いません。追加したら有効化します。
エクスポートデータを作成
サイドバーに「All-in-One WP Migration」という項目が表示されたので、そこをクリックしページへ遷移します。エクスポートの画面内に「検索 <文字列> 置換 <別の文字列> データベース内」とありますが、基本的に設定は不要です。高度なオプションをクリックすると、条件が選択できます。もし、メールアドレスがドメインと同じようであれば置換しない方がいいのでチェックします。特に該当しないようであればそのまま何も選択することなく「エクスポート先」をクリックしましょう。
エクスポート先が選択肢の中から選べます。通常は「ファイル」を選択します。これでエクスポートファイルが生成できました。
移行先サイトにWordPressをインストールする
エクスポートしたデータを移行先のサイトでインポートをするため、移行先でも同じプラグインを利用する必要があります。そのため、一旦WordPressとプラグインをインストールする必要があります。ここでは、コントロールパネルから簡単にインストールができる、Xserverの簡単インストール機能を使ってインストールを進めます。この機能を使うとドメイン設定中のドメインでもインストールすることができます。もちろん手動でインストールする方法でも問題ありません。
Xserverの簡単インストールを使う
再びXserverのサーバーパネルにログインします。メニューにある「WordPress簡単インストール」をクリック。
「WordPressのインストール」タブをクリックし、新たにインストールする対象となるドメインを確認した上で設定を進めます。インストールURLは先程設定したテストサイトのURLを選択します。
その後ろにあるサブディレクトリのテキストボックスには特に理由がなければ何も入力しなくてOKです。パスワードは初回のログインで利用するのでメモっておきましょう。データベースは自動で作られるものかあらかじめ作っておいたものを選択します。設定できたらインストールします。
これでインストールが完了しました。完了のページに先程設定したアカウント情報やログインURL情報があるので残しておきましょう。
移行先のサイトでデータをインポート
ドメインの設定が完了し、無事サイトにアクセスできるようになったらいよいよデータをインポートです。上記のログインURLよりWordPressにログインし、先程使ったプラグイン、「All-in-One WP Migration」をつかってインポートするためプラグインをインストールしてください。
エクスポートデータからインポート
プラグインのインストールがすんだら、サイドバーの「All-in-One WP Migration」内にある「インポート」をクリックします。「ドラッグ&ドロップ」の部分に先程エクスポートしたデータをドラッグします。
データがアップロードされると注意文が表示されます。ウェブサイト自体が上書きされるから注意してね、という文言ですが、そのまま進行で問題ないので「PROCEED」をクリックし進めます。
ちなみに今回、PHPのバージョンが5系から7系になりインポートにあたって何かしら不具合を起こす可能性があることがメッセージに書いてありました。移行先と移行元のPHPバージョンが異なると不具合が出る可能性があるため、PHPバージョンを合わせるか、インポート後に修正をします。不具合が起こる可能性としては利用しているテーマやプラグインの問題であることが多いでしょう。
ほどなくして、データのインポートが完了しました!最後に必要なステップとして、WordPressのパーマリンク問題を解決するためパーマリンクの設定画面で保存をする必要があります。念の為2回設定してねと書いてありますね。
「Permalinks Settings」リンクをクリックすると新しいタブでログイン画面が開きます。移行が完了しているためインストール時に新しく設定したログイン情報ではなく移行元のWordPressログイン情報でログインし、パーマリンク画面から「変更を保存」を二回クリックしましょう。
サイトURLの置換もプラグイン側で自動でやってくれているので、作業はこれで完了です!サイトにアクセスしてみましょう。
バッチリ表示されました!念の為各ページと管理画面等確認し、問題ないかどうかみておきましょう。
容量制限に引っかかってしまう場合は別の手段
今回は簡単にサイトを複製できるAll-in-One WP Migration プラグインを使った方法をご紹介しましたが、無料版の制限としてバックアップファイルのサイズが512MBまでという容量制限があります。
この制限をクリアするには有料のアドオンを購入するのですが(昔は直接ファイルの値を編集すれば回避できた)、代わりにバックアッププラグインとして有名な UpdraftPlus プラグインを利用してテスト環境を作成することも可能です。
プラグインは無料で使え、嬉しいことに容量制限がありません。All-in-One WP Migration だと容量制限に引っかかってしまう、という場合はUpdraftPlus を利用した複製方法もご検討ください。
パスワード保護を設定しサイトへのアクセスを制限
最後にサイト全体をパスワード保護しておきましょう。このままだと本番サイトとテストサイトが両方存在することになり、重複サイトとしてGoogleからの評価が下がり検索結果に悪影響をあたえてしまったり、誰でもテスト環境へアクセスできる状態になってしまいます。
設定する方法はWordPressプラグインでもいいですが、アカウント情報がない人もパスワードを知っていれば見てもらえたほうが使い勝手がいいため、Basic認証機能を使って保護設定します。ここではXserverのコントロールパネルから設定できるBasic認証を設定します。もちろん .htaccess を利用した認証方法でも構いません。
Basic認証でID/パスワードを設定
Xserverのサーバーパネルにログインし、「ホームページ」内の「アクセス制限」をクリックします。
対象となるドメイン名を選択し、今回作成したサブドメインにある「ユーザ設定」をクリックします。
ユーザーIDとパスワードを設定し、「ユーザの追加」をクリック。
追加できたら一覧ページに戻り、該当サブドメインを「ONにする」をクリックして有効化します。
これでBasic認証が設定できました。再度サイトにアクセスし、Basic認証が有効になっていることを確認し、設定したID/パスワードでアクセスできるか確認しましょう。
常時SSLが未設定の場合は対応を
もともとのサイトが常時SSL設定済みであれば、おそらくインポート後に対応しているはずですが、もし常時SSLが正しく設定されていない場合は忘れずに別途対応をしておきましょう。
参考: なぜかSSL化されないエックスサーバーのWordPress 簡単インストール機能でhttpsに変更し常時SSLを実現する方法
テスト環境はデバッグモードを有効化しておく
テスト環境が出来上がったら、WordPress や PHP のエラーを事前に把握しておくために、テスト環境はデバッグモードを有効化しておくこより安心した運用につながります。
デバッグモードの設定や本番環境でなるべく安全にデバッグするための設定方法などをまとめました。
参考: テスト環境や開発環境を用意したら有効化しておきたいデバッグモード
最後に
以上、テスト環境の構築方法でした。今回はコントロールパネルからの設定やWordPressのプラグインを使った環境構築方法となりましたが、一つずつ追って作業すれば手間はかかるものの、そこまで難しくなく構築できるかと思います。プラグインが利用できなかったり、各種設定を手動で行う必要がある場合は方法は異なりますが、レンタルサーバー等でしたら基本的に今回の構築方法が利用できるかと思います。
これでWordPressのアップデートや改修等、テスト環境を利用した安心なサイト運用ができます。
ちなみに今回取り上げたエックスサーバーですが、格安レンタルサーバーには値段で負けるものの、高速で安定したWordPressを運用することができ非常にコストパフォーマンスの良い人気のサーバーです。コントロールパネルも使いやすく、私も長年愛用しているサーバーの一つで、自身を持っておすすめできるレンタルサーバーです。無料でお試しできる試用期間もあるので、サーバー乗り換えを検討されていたら是非使ってみてください。
コメントを残す