CPIのSmartReleaseでWordPressサイトを賢く運営する方法

CPIの特徴の一つとしてSmartRelease(スマートリリース)があります。CPIのレンタルサーバーにはテストサイトと公開サイトの概念があり、スマートリリースを使うことでウェブサイトの管理が容易となります。スマートリリースの詳細については こちら を参考にしてください。

ここではスマートリリースとWordPressとの連携を紹介します。

スマートリリースの概要

CPIは他のレンタルサーバーと異なり、テストサイトと公開サイトの領域が別々に用意されています。アクセスを制限するテストサイトで動作確認を行った後、ワンクリックで公開サイトへ反映(同期)させることができます。

データベースの同期機能はないため、基本的に両サイトで同じデータベースを共有することになります。もちろん、テストサイトと公開サイトとでデータベースを別けることは自由です。その場合、手動または何かしらの方法でデータベースの同期が必要となります。

他にも強力なバックアップ機能を備えています。30世代分(データベースは10世代分)の自動バックアップに対応しています。スマートリリースが不要であっても、バックアップ機能はトラブル時に役立つことでしょう。

インストール補助機能によるWordPressの導入

WordPressの導入にはインストール補助機能を利用しましょう。後述するように手動でのインストールも可能ですが、少し注意が必要です。補助機能を利用すれば問題が発生しません。

ここではスマートリリースによる管理を前提とするため、テストサイトにインストールします。テストサイトの準備が終われば、ワンクリックで公開サイトへ反映させることができます。

  • コントロールパネルにログインします。
  • 「テストサイト用設定」タブを選択します。
  • 「ソフトライブラリ」をクリックします。
  • 「ソフトライブラリ」が開きます。
  • 「CMSインストーラー」をクリックします。
  • 「CMSインストーラー」が開きます。
  • 「WordPress」を選択します。
  • インストールディレクトリを選択します。
    • ドキュメントルート(/home/サーバーID/html)以外にインストールするなら、FTPクライアントでディレクトリを作成しておきます。
    • ここでは「ドキュメントルート/wp」にインストールします。インストールディレクトリについては こちら も参考にしてください。
  • 「確認事項に〜」をクリックします。

あくまでも補助機能なので「インストールファイルの配備」と「データベースの作成」のみ実行されます。これ以降の作業は手動インストールと変わりません。

それではインストール作業を続けましょう。指定された「URL」をクリックします。

  • この画面が表示されたら、「さあ、始めましょう!」をクリックします。
  • パスワード以外は入力済みとなっています。パスワードを入力するだけです。
    • パスワードは契約時またはドメイン追加時に発行されているはずです。
    • 「データベースのホスト名」は「localhost」ではなく「127.0.0.1」です。
  • 「テーブル接頭辞」は特別な理由がなければ初期設定の wp_ のままで構いません。
    • テーブル接頭辞については この記事 を参考にしてください。
  • 正しく入力できたら「送信」をクリックします。
  • この画面が表示されれば、データベースと正しく接続されたことになります。
  • 「インストール実行」をクリックします。

サイト情報と管理者アカウントを登録します。下記を参考に入力してください。

項目 説明
サイトのタイトル ウェブサイトのタイトルとして表示されます。ダッシュボードでの「サイトのタイトル」に利用されます。
ユーザー名・パスワード 管理者アカウントとなります。ダッシュボード(WordPressの管理ツール)へのログインに必要な情報なので、メモを残しておきましょう。
メールアドレス 管理者のアドレス以外に、コメント、トラックバック、ピンバック、アップデートなどの通知にも利用されます。パスワードを忘れた際の手続きにも利用するので、有効なアドレスを入力します。
検索エンジンでの表示 チェックすると検索エンジンのクローリング 対象外 となります。テストサイトなど公開したくない場合はチェックします。ただし、チェックしても完全に検索結果から除外されるわけではありません。

間違いがなければ「WordPressをインストール」をクリックします。

メモ
全ての項目をインストール後にダッシュボードで変更可能です。

これで「テストサイト」にWordPressがインストールされました。

それではスマートリリースを利用して公開サイトへ反映させてみましょう。

スマートリリースでテストサイトを公開サイトへ反映させてみよう

注意
公開機能(リリース機能)を利用するとテストサイトと公開サイトのデータが同期されます。テストサイトのデータで上書きされ、テストサイトに存在しないデータは全て削除されます。同期対象はドキュメントルート(/usr/home/サーバーID/html)ではなく、ホームディレクトリ(/usr/home/サーバーID)です。つまり、全てのデータが同期対象です。
ドキュメントルートだけを同期対象とするなら、「ファイル(ディレクトリ)選択リリース」を利用します。
  • ユーザーポータルからスマートリリース(SmartRelease)へ移動します。
  • SmartReleaseが別ウィンドウで開きます。
  • 「今すぐ公開する」をクリックします。
  • リリース関連の機能が表示されます。
  • 「すべてリリース」をクリックします。
  • 確認画面が表示されます。
  • 「リリース」をクリックします。
    • バックアップが同時に実行されるため、少し時間がかかります。

これでテストサイトが公開サイトへ反映されました。公開サイト(ここではexample.com)へアクセスしてみましょう。

公開サイトにアクセスするとテストサイトと全く同じコンテンツ表示されます。同じデータ(データベースを含む)を参照するので当然です。

しかし、すぐにおかしなことに気がつくでしょう。ページ内のリンク先が全てテストサイトのURL「○○.smartrelease.jp」となっています。データベースを共有するため、以下のURL設定がテストサイトのままになっているためです。

これに対応するには、「WordPressアドレス」と「サイトアドレス」を修正する必要があります。しかし、テストサイトと公開サイトでデータベースを共有するため、どちらにも対応できるようにする必要があります。

テストサイトURLの影響範囲

phpMyAdminでテストサイトのURLに関連するデータを確認してみましょう。テストサイトのURLに含まれる「smartrelease.jp」を検索します。

初期状態でURLに関係するデータは、「wp_options」と「wp_posts」にあります。修正が必要となるのは「wp_options」の「siteurl」と「home」です。これらがダッシュボードでの「WordPressアドレス」と「サイトアドレス」になります。

「wp_posts」の「guid」は修正不要です。ここの文字列は識別のために利用されるだけであり、URLに意味はありません。WordPressの公式サイトでもそのように説明されています。

GUID は絶対に変更してはなりません。ドメインを変更しても、新しいアドレスに移動したとしても投稿はやはり同じ投稿です。新しい URL のフィードを読み込んだフィードリーダーは過去にユーザーが投稿を読んだかどうか認識する必要が有るため、GUID は同じものに保つ必要があります。 どんな状況においても、GUID カラムの内容は絶対に変更しないでください。

サイト URL の変更 – WordPress Codex 日本語版

データベースに手を加えない対処方法

テストサイトと公開サイトでデータベースを共有するため、データベースを修正するのはトラブルの元です。WordPressにはこのような場合に対処可能な手段が提供されています。

公開サイト側の「wp-config.php」に以下を記述してください。

define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST'].'/wp');
または、define('WP_HOME', 'http://example.com/wp');

define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST'].'/wp');
または、define('WP_SITEURL', 'http://example.com/wp');

「example.com」は環境に合わせて変更してください。

こちらの設定が優先的に参照され、データベースの値(siteurlとhome)は無効となります。

注意
ウェブサイトでURLを利用する場合は、WordPressの変数または関数から呼び出すようにします。URL(ドメイン)をハードコーディングすると不具合の原因となります。

wp-configを同期対象から外す

define('WP_HOME', 'http://example.com/wp');
define('WP_SITEURL', 'http://example.com/wp');

とした場合、リリース機能で上書きされると困ります。そこで、「除外リスト」機能で同期対象から外します。

  • スマートリリースにログインします。
  • 「リリース機能」の「除外リストに追加」をクリックします。
  • 「wp-config.php」を選択します。
  • 「除外リストに追加」をクリックします。

これで「wp-config.php」が同期対象から外れ、テストサイトと公開サイトで個別に管理されることになります。

うっかりリリースしても大丈夫

設定にもよりますが、リリースすると公開サイトのデータが上書きされ、テストサイトにないデータは削除されます。

スマートリリースを利用する限り、公開サイトにしかないデータは存在しないはずですが。同期時にうっかり削除されても焦る必要はありません。毎日深夜に自動バックアップが実行されていることもありますが、リリース時にもバックアップが実行されます。

バックアップファイルのダウンロードやリストアに対応しているため、リリース時の心配は不要です。これは「ファイル転送(公開サイトからテストサイトへの同期)」も同様であり、バックアップが実行されます。

リリース時は公開サイトのバックアップ、ファイル転送時はテストサイトのバックアップが実行されます。つまり、上書きされる側がバックアップ対象となります。

WordPressの手動インストール

インストール補助機能を利用しないインストール方法です。「データベースの作成」と「インストールファイルの配備」を行えば、後の手順は補助機能を使った場合と同じです。

データベースの作成

WordPress用のデータベースを作成します。

  • コントロールパネルにログインします。
  • 「公開サイト用設定」タブを選択します。
    • データベースは共通なので「テストサイト用設定」でも同じです。
  • 「データベース」をクリックします。
  • 「データベース」関連機能が表示されます。
  • 「MySQL5.6データベースの追加・削除」をクリックします。
    • 必要に応じて「5.5」を選択してください。
  • 「データベース新規作成」をクリックします。
  • 「文字コード」は「UTF-8」を選択します。
  • 「新規データベース名」を入力します。ここでは「サーバーID_wp」とします。インストール時に必要となるのでメモに残しておきましょう。
  • 「新規追加」をクリックします。

これでWordPress用のデータベースが作成されました。

インストールファイルの配備

ここでは独自ドメイン「example.com」にWordPressをインストールします。インストールディレクトリとドメイン(URL)の関係は以下の様になります。

CPIの仕様上、全てのドメインが同じディレクトリ構成となり、ドキュメントルートは「~/html」となります。テストサイト(○○.smartrelease.jp)も同じです。

ドキュメントルート直下「~/html」ではなく、WordPress専用ディレクトリ「~/html/wp」にインストールします。Zipファイルを展開すると wordpress という名称のフォルダが生成されるため、wp に変更して、「~/html」にアップロードします。正しくアップロードされると図のような構成となります。

インストールディレクトリは慎重に決定しましょう。後から変更することも可能ですが、サイトの作りによってはデータベースやコンテンツの大幅な修正が必要となります。

WordPressはファイル数が多く、展開してからアップロードすると非常に時間がかかります。PHPの知識があるならサーバー側でダウンロードと展開を行うスクリプトを作成すると効率的です。時間に余裕があるなら展開後にアップロードしても問題ありません。

インストール作業

ウェブブラウザで「http://example.com/wp/」へアクセスします。これ以降の作業はインストール補助機能による導入で説明した内容と同じです。

パーマリンクを変更したときのエラー対処方法

手動でインストールした場合、WordPressのパーマリンク設定を変更すると、このようなエラーが発生してサイトにアクセスできなくなります。解決するには「.htaccess」に以下のパラメータを追加してください。

Options +SymLinksIfOwnerMatch

インストール補助機能を利用した場合、自動的にこのパラメータが設定されます。

PHPのバージョンを変更するには?

スマートリリースやWordPressとは無関係ですが、例えばPHP7を適用する場合、.htaccessに以下の記述を追加します。当たり前ですが、他のバージョンの記述があれば削除(またはコメントアウト)しておきます。詳しい説明は公式サイトにあります。

AddHandler x-httpd-php70 .php

まとめ

スマートリリースは全く同じ環境でテストサイトを用意できるため、基本的に「テストサイトで動作すれば、公開サイトでも問題がおきない」という特徴があります。なぜなら、PHPのバージョンは意図的に変更しなければ同じであり、データベースも同じものを参照します。同じサーバー上にあるため、他のソフトウェアのバージョンも統一されます。少し敷居の高いテストサイトを簡単に導入できることが、CPIの大きなメリットでしょう。

ただし、スマートリリースも万能ではありません。すでに説明しましたが「URL(ドメイン)」の取り扱いには気を付ける必要があります。それさえ気を付けていれば、安定したサイト運営の強力な武器となってくれるでしょう。

関連記事