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