mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Nginx - PHP との連携!

[ サーバ構築 ] [ LinuxMint, Nginx, PHP ]

こんばんは。

Nginx で PHP を使用するには、PHP の FastCGI 実装が必要です。

今回は PHP の FastCGI 実装の1つである PHP5-FPM(PHP FastCGI Process Manager) を使用します。

0. 前提条件

  • Linux Mint 14 Nadia (64bit) での作業を想定。
  • Nginx 1.2.6 がソースビルドによりインストール済み。
  • パッケージを利用してインストールした Nginx とはディレクトリ構成等が若干異なる。 (別途作成したヴァーチャルホストの設定ファイルを取り込む形式になっていたり・・・)
  • PHP 5.4.6 がインストール済み。(古いバージョンだと作業が異なるかも知れない)

1. PHP5-FPM インストール

PHP5-FPM(PHP FastCGI Process Manager) が未インストールなら、Synaptic パッケージマネージャか apt 等でインストールしておく。
(環境によっては、他にも必要なパッケージがあるかも知れません。適宜対応してください)

apt-get でインストールするなら、以下のようにする。

1
$ sudo apt-get install php5-fpm

2. PHP5-FPM インストール確認

インストールできているかをコマンドで確認するなら以下のようにする。
fpm-fcgi が表示されることを確認する。

1
2
3
4
$ php5-fpm -v
PHP 5.4.6-1ubuntu1.1 (fpm-fcgi) (built: Nov 15 2012 01:27:09)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

3. PHP5-FPM 設定

設定ファイルは、/etc/php5/fpm/php-fpm.conf/etc/php5/conf.d/ ディレクトリ配下のファイルで行う。
しかし、今回は特に編集はせずデフォルトのままとした。

4. Nginx 設定

Nginx の設定を編集する。(当方の環境では /usr/local/nginx/conf/nginx.conf
server ディレクティブ内に以下のような記述を追加する。

/usr/local/nginx/conf/nginx.conf
1
2
3
4
5
6
7
8
9
    location ~ \.php$ {
        #root          html;
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_index  index.php;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
    }

既存のコメントアウトされている部分を解除・編集している。
編集したのは fastcgi_param の部分。

5. サンプルページ作成

PHP 動作確認用のページを作成する。 取り急ぎ、サーバルート(当方の環境の場合は /var/www/html/)に以下のような PHP 情報を表示するスクリプトを作成した。

/var/wwww/html/phpinfo.php
1
<?php phpinfo(); ?>

6. PHP5-FPM 起動

以下のようにして PHP5-FPM サービスを起動する。

1
$ sudo service php5-fpm start

7. Nginx 起動

Nginx が起動していなければ起動し、起動していればリロードする。

8. 動作確認

ブラウザで http://127.0.0.1/phpinfo.php にアクセスしてみて、以下のようなページが表示されれば OK.

NGINX_PHP

Server APIFPM/FastCGI となっていることを確認する。
また、少し下部の cgi-fcgi 部分で php-fpmactive になっていることにも確認する。


これで、Nginx で PHP ページが表示できるようになりました。

少し前に、ブログを PHP ベースの WordPress から Ruby 製静的 CMS の Octopress に変更しました。
しかし、当方のサーバ内では多少なりとも PHP を使っている部分もあるので、いずれ Apache から Nginx に完全に移行することを考えると、今回の作業は有用でありました。

以上。

Comments