Virtual Memory

vmem.jp

Nginx + Php5-fpm + Wordpress @さくらのVPS

さくらのVPSでWordPressを使う。というか今まさに使っている。 OSはUbuntu 10.04 server (amd64)。 apache2 + libapache2-mod-php5ではなくnginx + php5-fpmという構成。 nginxとphp5-fpmのインストールについてはさくらのVPSでnginx + php5-fpmを参照。

WordPressを/var/www/defaultに配置するという前提。

まずはWordPress本体のダウンロード。

$ cd /tmp
$ wget http://ja.wordpress.org/wordpress-3.0.1-ja.tar.gz

ダウンロードしたファイルの展開。

$ cd /var/www
$ sudo tar zxvf /tmp/wordpress-3.0.1-ja.tar.gz
$ sudo mv wordpress default
$ sudo chown -R www-data:www-data

wp-config.phpの編集。

$ cd default
$ sudo cp wp-config-sample.php wp-config.php
$ sudo vi wp-config.php
$ sudo chown www-data:www-data wp-config.php

編集内容はapache2だろうがnginxだろが変わりはないのでパス。

nginxの編集。

$ sudo vi /etc/nginx/sites-available/default

以下、全て

server {
}

内に記述。

rootの設定。

root   /var/www/default

locationの設定。 indexにindex.phpを追記。 また

http://vmem.jp/2010/11/13/postname

というURIにしたいのでrewriteを使っている。

location / {                                                                                              
    index  index.php index.html index.htm
    if (-e $request_filename) {                                                                           
        break;                                                                                            
    }                                                                                                     
    rewrite ^/(.+)$ /index.php?q=$1 last;                                                                 
} 

fastcgiの設定。 fastcgi_param SCRIPT_FILENAME で指定すべきディレクトリ名(ここでは/var/www/default)に注意。

location ~ \.php$ {                                                                                       
    fastcgi_pass   127.0.0.1:9000;                                                                        
    fastcgi_index  index.php;                                                                             
    fastcgi_param  SCRIPT_FILENAME  /var/www/default$fastcgi_script_name;                                
    include        fastcgi_params;                                                                       
} 

nginxの再起動。

$ sudo /etc/init.d/nginx restart

以下余談。 さくらのVPS 980はメモリ512MB、ということについては常に留意しておいたほうがいいかもしれない。 例えばphp5-fpmのプロセス数を増やしすぎるとスワップが発生し途端にレスポンスが悪くなる。 さくらのVPSでnginx + php5-fpmでphp5-fpmをインストールした場合はデフォルトで ・プロセスを動的に生成しない ・起動時に生成するプロセス数は10 となっているのでそういった心配は杞憂かもしれないが、プロセスを動的に生成する場合、生成するプロセスを増やす場合は注意が必要。 ちなみにapache2の場合はデフォルトの設定でMaxClientsが150になっているので設定を変えずに使っていると、一時的にでもドンとアクセスがきた場合、あっという間にスワップが発生しレスポンスが悪くなる。

使っているウェブサーバに関わらず、設定後はapacheのベンチマークツールab(ab - Apache HTTP server benchmarking tool - Apache HTTP Server)等でテストし、どの程度のアクセスで限界が来るのかは把握しておいたほうがいいかもしれない。

当サイトのようにWordPressしか使っておらず大してアクセスも無い場合はさくらのVPS 980で十分。 さくらのレンタルサーバ プレミアムを使うくらいならさくらのVPS 980を使った方がむしろ安上がりで快適。 (実際、さくらのレンタルサーバ プレミアムは解約した。ちなみにプレミアムは年払いで月額1,500円。)

しかし、やはりメモリ512MBではいかにもきつい。 当初さくらのVPS 980で自作のウェブアプリの公開を考えていたのだがやめた。 近い将来、さくらのクラウドとさくらのVPSの上位サービスが開始されるようなので(さくらインターネット、IaaSのクラウドサービス「さくらのクラウド」発表 - クラウド Watch)価格次第では乗り換えることになると思う。 さくらのVPSの上位サービスが単純にメモリ1GBで価格が今の倍程度なら(あとディスク容量をもう少し増やしていただけるとありがたいが)すぐに乗り換えると思う。