月別アーカイブ: 2012年1月

WordPressをNginxで動かす

Nginxって?

NginxがApacheに次いでアクティブサイトシェア2位になったそうです。あのIISを抜いて本当ですか?私はまだインストールしたこともなく、リバースプロキシに特化したWebサーバで、ロシア人が作っている、くらいしか知りませんでした。久しぶりに検索すると、公式サイトのトップは相変わらず殺風景でしたが、Wikiはかなり充実していました。なぜこっちがトップではないのか。。

なぜそんなにきてるの?というのはWikiに書いてあって、非同期のイベント駆動アーキテクチャの、C10K問題に対応したWebサーバだそう。そう、クラウド時代のWebサーバ。実際、PHPはPHP-FPM、RubyはUnicornと組み合わせて使うのが常識のようです。

WordPressでも動いているそうなので、Ubuntu 10.04(LTS)でWordPressを動かす手順をなぞってみました。

NginxとPHP-FPMのインストール

UbuntuのNginxを入れると、とっくに1.0が出ているのに0.8.xが入ってしまいます。また、php-fpmも含まれていません。さいわいPPAがあるので、PPAを追加してインストールします。

$ sudo apt-get install python-software-properties
$ sudo apt-get add-apt-repository ppa:nginx/stable
$ sudo apt-get add-apt-repository ppa:nginx/php5
$ sudo apt-get update
$ sudo apt-get install nginx php5-fpm php5-mysql

インストールされたことを確認します。

$ sudo service nginx status
$ sudo service php5-fpm status

php5-fpmでstatusはないので、Usage:が出てくるはずです。とりあえずインストールされたことはわかります。また、ブラウザでhttp://127.0.0.1/を開くとWelcome to nginx!と書いてあるページが出てきます。

Nginxの設定

Nginxの設定ファイルは/etc/nginxの下にあります。PPAで入れただけあって、Apacheと似せてあります。よかったですね。というわけで、sites-available/defaultを編集します。ここでは、/var/www/ディレクトリにWordPressを解凍したと仮定します。

server {

  root /var/www/;
  server_name localhost;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
  }
}

ファイルを保存したら、NginxとPHP-FPMをリロードします。

$ sudo service nginx reload
$ sudo service php5-fpm reload

これで設定はおわりです。Apacheのときと同様に、ブラウザでhttp://127.0.0.1/を開いて、WordPressのインストールを進めてください。

なお、上記の方法でPHPをインストールすると、
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
とブラウザに出てくるかもしれません。(というか、出た)そのときは、php5-mysqlをインストールしてください。