nginxベースの高速なWordPress環境をお名前.comのVPSで構築

 Webサイトやブログサイトを運営する際に使うCMS(コンテンツマネジメントシステム)として定番となっているWordPressは、ApacheとPHP、MySQLといった環境で利用するのが一般的だ。しかし、この構築環境は軽量とは言いがたいため、アクセスが多いサイトの場合サーバーリソースを潤沢にするか、バックエンドのチューニングが必須だ。そこで動作が軽く、プロキシサーバーとしても利用可能なWebサーバー「nginx」を使い、非常に高速なWordPress環境を構築する方法を紹介しよう。年額1万円未満で利用可能な「お名前.comのVPS 1GBプラン」でも、かなり実用的なWebサーバー環境が構築できる。

nginxとは?

 nginxは、HTTPサーバーとリバースプロキシの機能を備えたWebサーバーである。HTTPを処理する基本的な機能を備えながらApacheよりも少ないリソースで動作し、リソースの限られたVPS環境でも軽快に利用できるのが特徴だ。なお、nginxにはmemcachedとの連携機能も備わっているが、memcachedでキャッシュした場合対応するステータスコードやログイン状態の切り替え処理などに制限があり、速度面でも若干プロキシに劣るので、プロキシとして運用したほうがパフォーマンスは良くなる。

nginxベースのWordPress動作環境を構築する

 nginxはApacheのようにPHPをそのまま利用できないため、FastCGI経由でPHPを実行する環境が必要になる。実装としてはいくつかあるが、PHP 5.3.3からPHP本体にマージされている「PHP-FPM」を利用するのが良いだろう。ただし、バージョン5.3.3付近のPHPでは各LinuxディストリビューションのパッケージにPHP-FPMが用意されていなかったり、その後のPHPのアップデートでPHP-FPMに関するいくつか大きな不具合も修正されているので、PHPおよび関連するMySQLについてはディストリビューション付属のパッケージではなく、最新リリース版を別途インストールして利用することにする。

 最終的な構成イメージは図1のようになる。

図1 nginxベースのWordPress動作環境
図1 nginxベースのWordPress動作環境

 TCPのポートは80番のみを使い、そのほかはUNIXドメインソケットで接続して高速化を図る。サーバー上のsshdは停止して22番ポートは閉じ、シリアルコンソールで接続する環境とする。お名前.comのVPSではシリアルコンソールに接続するためのSSHサーバーとWebブラウザ上で動くシリアルコンソールの2系統の操作導線が用意されており、sshdを動作させないセキュアな構成での運用も可能である。万が一接続用のSSHサーバーに障害があった場合でも、Webブラウザからの操作系統が利用できる。

 VPS環境としては2コアのCPUが利用できる「1GBプラン」を使い、OSは標準のCentOSを利用する。ここでは図2のようにディスク全体を1パーティションに割り当て再インストールした状態から作業を進めていく。

図2 OSの再インストール
図2 OSの再インストール

TeraTermマクロを使った自動ログイン設定

 シリアルコンソールへ接続するためのSSHサーバーは公開鍵認証が必須となっている。普段使うものなので、ワンクリックで接続できるようにしておこう。Windows上のTera Termで自動ログインする手順は以下になる。

 まず、WebブラウザからVPSの管理コンソールを開き、左のメニューにある「SSH Key Pair」を選択して接続用のPrivate Key(秘密鍵)をダウンロードする(図3)。

図3 鍵のダウンロード
図3 鍵のダウンロード

 ダウンロードした秘密鍵ファイルは重要なファイルなので、適切なフォルダに移動しておこう。次にリスト1のような内容のテキストファイルを作成し、「onamae1g.ttl」のような拡張子「TTL」のファイル名を付けて保存する。

リスト1 TeraTermマクロ「onamae1g.ttl」

HOSTNAME = 'xxxxxxxxxx'
USERNAME = 'xxxxxxxxxx'
KEYFILE = 'ダウンロードしたPrivate Keyのフルパス'

COMMAND = HOSTNAME
strconcat COMMAND ':22 /ssh /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEYFILE
connect COMMAND
end

 「HOSTNAME」と「USERNAME」には、管理コンソールでVPSを閲覧した際、一番下に表示されている情報(図4)を記載する。

図4 接続情報は管理コンソールの一番下に表示される
図4 接続情報は管理コンソールの一番下に表示される
SSH経由シリアルコンソール接続 SSH経由シリアルコンソール接続方法
接続先:xxxxxxxx  ← HOSTNAME
ユーザー名:xxxxxxxx  ← USERNAME

 「KEYFILE」にはダウンロードした秘密鍵ファイルの場所をフルパス(C:\などから始まるパス名)で記載する。

 次にこのTTLファイルを右クリックして「プロパティ」を選択し、表示されるダイアログボックスの「全般」タブ内「プログラム」横の「変更」ボタンをクリックする。ここでTera Termをインストールしたディレクトリ(通常はC:\Program Files\teraterm)にある「ttpmacro.exe」に関連付けを設定する。TTLファイルが図5のような状態になれば完了である。

図5 Tera Termマクロの関連付け
図5 Tera Termマクロの関連付け

 以上の設定が完了すれば、「onamae1g.ttl」ファイルをダブルクリックするだけでTera Termが起動し、SSHサーバーへのログインまでを自動的に行える。接続後にEnterキーを一度押すと図6のような画面となり、rootもしくは任意のユーザーにてログインできる。

図6 シリアルコンソール
図6 シリアルコンソール