nginx+php5-fpmでPHP実行環境を構築

PHP

NginxはApacheに比べて、とてつもなくはやい。同スペックのサーバを利用するのであればNginxが圧倒的なパフォーマンスを発揮するケースがほとんどだろう。

そして、Apacheできることのほとんどは、Nginxでもできる。

年末年始を利用して、PHPで稼働しているサービスをすべてNginxへ移行できたので、その備忘録を書く。

今回はUbuntu 10.04(lucid)でnginxをhttpサーバとして、PHPを実行できる環境を構築するまで。

スポンサーリンク

nginxをインストール

Ubuntu 10.04(lucid) LTSで最初からインストールできるNignxのバージョンはとても古い。よって、本家のパッケージを利用してインストールをする。

GPG署名

Nginxの電子署名を設定する。

wget http://nginx.org/packages/keys/nginx_signing.key
cat nginx_signing.key | sudo apt-key add -

/etc/apt/sources.list

パッケージの参照先を追加する。

deb http://nginx.org/packages/ubuntu/ lucid nginx
deb-src http://nginx.org/packages/ubuntu/ lucid nginx

インストール

実際にNginxをインストールする。比較的最新版がインストールされるはず。

$ sudo apt-get update
$ sudo apt-get install nginx

PHP-FPM (FastCGI Process Manager)をインストール

FastCGIって、Lighttpdが話題になったとき以来だったので、あんまり覚えていなかったのだけど、FastCGI Process Managerということで、PHP 5.3.3からPHP本体に同梱されているようなのですね。

Debianだとphp5-fpmというパッケージ名で最初からあるっぽいのだけど、Ubuntu 10.04(lucid)ではありません。

Nginx同様に外部のパッケージをインストールすることにします。

/etc/apt/sources.list

パッケージの参照先を追加する。

deb http://ppa.launchpad.net/nginx/php5/ubuntu lucid main
deb-src http://ppa.launchpad.net/nginx/php5/ubuntu lucid main

インストール

実際にphp5-fpmをインストールする。

$ sudo apt-get update
$ sudo apt-get install php5-fpm

Nginxの設定

Nginxにバーチャルホストを追加するには/etc/nginx/sites-available/以下に設定ファイルを作成して、/etc/nginx/sites-enabled/からシンボリックリンクで参照させて、Nginxに設定を読ませる感じになる。

ファイルを作成する

/etc/nginx/sites-available/example にこんな感じでファイルを設定する。example.hiroki.jpというURLのバーチャルホストだと仮定する。

server {
         listen   80;
         server_name  example.hiroki.jp;
         root /var/www/html;
         index index.php index.html index.htm;
         access_log  /var/log/nginx/example.access.log;
         error_log  /var/log/nginx/example.error.log;
    location ~* \.php$ {
        try_files       $uri /index.php;
        fastcgi_index   index.php;
        fastcgi_pass    127.0.0.1:9000;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }
}

シンボリックリンクの作成

シンボリックリンクを /etc/nginx/sites-enabled/ 側からはる。

$ cd /etc/nginx/sites-enabled/
$ ln -s /etc/nginx/sites-available/example example

設定ファイルのチェック

設定ファイルの記述に誤りが無いかをチェックします。間違いを指摘された場合、修正しましょう。

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

こんな表示になれば、設定ファイルに問題はありません。

Nginxに設定ファイルの反映

設定ファイルに問題が無ければ、Nginxに反映します。

$ sudo /etc/init.d/nginx reload

nginx+php-fpm

この設定ファイルだと、 /var/www/html 以下に拡張子がphpのファイルをおけば動作するはずです。

次回はWordPressを動かすための設定を書き留める予定です。

タイトルとURLをコピーしました