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のようになる。
TCPのポートは80番のみを使い、そのほかはUNIXドメインソケットで接続して高速化を図る。サーバー上のsshdは停止して22番ポートは閉じ、シリアルコンソールで接続する環境とする。お名前.comのVPSではシリアルコンソールに接続するためのSSHサーバーとWebブラウザ上で動くシリアルコンソールの2系統の操作導線が用意されており、sshdを動作させないセキュアな構成での運用も可能である。万が一接続用のSSHサーバーに障害があった場合でも、Webブラウザからの操作系統が利用できる。
VPS環境としては2コアのCPUが利用できる「1GBプラン」を使い、OSは標準のCentOSを利用する。ここでは図2のようにディスク全体を1パーティションに割り当て再インストールした状態から作業を進めていく。
TeraTermマクロを使った自動ログイン設定
シリアルコンソールへ接続するためのSSHサーバーは公開鍵認証が必須となっている。普段使うものなので、ワンクリックで接続できるようにしておこう。Windows上のTera Termで自動ログインする手順は以下になる。
まず、WebブラウザからVPSの管理コンソールを開き、左のメニューにある「SSH Key Pair」を選択して接続用のPrivate Key(秘密鍵)をダウンロードする(図3)。
ダウンロードした秘密鍵ファイルは重要なファイルなので、適切なフォルダに移動しておこう。次にリスト1のような内容のテキストファイルを作成し、「onamae1g.ttl」のような拡張子「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)を記載する。
SSH経由シリアルコンソール接続 SSH経由シリアルコンソール接続方法 接続先:xxxxxxxx ← HOSTNAME ユーザー名:xxxxxxxx ← USERNAME
「KEYFILE」にはダウンロードした秘密鍵ファイルの場所をフルパス(C:\などから始まるパス名)で記載する。
次にこのTTLファイルを右クリックして「プロパティ」を選択し、表示されるダイアログボックスの「全般」タブ内「プログラム」横の「変更」ボタンをクリックする。ここでTera Termをインストールしたディレクトリ(通常はC:\Program Files\teraterm)にある「ttpmacro.exe」に関連付けを設定する。TTLファイルが図5のような状態になれば完了である。
以上の設定が完了すれば、「onamae1g.ttl」ファイルをダブルクリックするだけでTera Termが起動し、SSHサーバーへのログインまでを自動的に行える。接続後にEnterキーを一度押すと図6のような画面となり、rootもしくは任意のユーザーにてログインできる。