Nginx 1.4.x (Unix システム用)

このドキュメントは、Nginx 1.4.x HTTPサーバー 向けに PHP を PHP-FPM とともにインストールし、設定する方法を示します。

このガイドは、あなたが Nginx をソースコードからビルドしたことを想定しています。 よって、すべてのバイナリと設定は /usr/local/nginx にあると想定しています。 仮にこれに当てはまらず、Nginx を他の手段で取得した場合は、 » Nginx Wiki を参照し、 このマニュアルをあなたのセットアップに読み替えてください。

このガイドは、Nginx サーバーが PHP アプリケーションを実行できるように設定し、 それを port 80 で公開するための基本的な設定を示します。 あなたのセットアップを最適化したい場合、Nginx と PHP-FPM のドキュメント を調べることを推奨します。セットアップの最適化は、このガイドの範囲外です。

このドキュメント全体を通して、バージョン番号は ドキュメント全体が将来でも正しく保たれるようにするため、 'x' で置き換えられている点に注意してください。 'x' については、必要に応じて対応するバージョン番号に置き換えるようにしてください。

  1. あなたのシステム向けに Nginx を取得し、インストールするために、 Nginx Wiki の » install を参照することを推奨します。

  2. PHP のソースコードを取得し、展開します。

     tar zxf php-x.x.x 
  3. PHP を configure し、ビルドします。 ここで PHP を様々なオプションを使ってカスタマイズできます。 たとえば、どの拡張モジュールを有効にするか、のようなものです。 利用できるオプションの一覧については、 ./configure --help を 参照ください。 私達の例では、PHP-FPM を MySQLi のサポートを有効にして シンプルに configure することにします。

     cd ../php-x.x.x ./configure --enable-fpm --with-mysqli make sudo make install 
  4. 設定ファイルを取得し、正しい場所に移動します。

     cp php.ini-development /usr/local/php/php.ini cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf cp sapi/fpm/php-fpm /usr/local/bin 
  5. ファイルが存在しなかったときは、Nginx が PHP-FPM バックエンドに、 リクエストを渡さないようにし、任意のスクリプトの挿入を防げるようにすることが重要です。

    php.ini ファイルで、 cgi.fix_pathinfo ディレクティブを 0 に設定することで、 この設定を行うことができます。

    php.ini をエディタで読み込みます:

     vim /usr/local/php/php.ini 

    cgi.fix_pathinfo= の行を探し、以下のように修正します:

     cgi.fix_pathinfo=0 
  6. サービスを開始する前に、php-fpm が www-data ユーザーと www-data グループで 必ず実行されるように、php-fpm.conf も修正しなければいけません:

     vim /usr/local/etc/php-fpm.d/www.conf 

    以下の部分を探し、修正します:

     ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = www-data group = www-data 

    ここまで来れば、php-fpm サービスを開始できます:

     /usr/local/bin/php-fpm 

    このガイドでは php-fpm をこれ以上設定しませんが、 php-fpm のさらなる設定に興味がある場合、ドキュメントを参照ください。

  7. Nginx が PHP アプリケーションの実行をサポートするように設定しなければなりません。

     vim /usr/local/nginx/conf/nginx.conf 

    Nginx が、.php ファイルをサービスすることを認識させるため、 デフォルトの location ブロックを修正します:

    location / { root html; index index.php index.html index.htm; }

    次のステップは、 .php ファイルへのリクエストが PHP-FPM バックエンドに渡されるようにすることです。 コメントアウトされているデフォルトの PHP location ブロックを 以下のように修正します:

    location ~* \.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; }

    Nginx を再起動します。

     sudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx 
  8. テスト用のファイルを作成します。

     rm /usr/local/nginx/html/index.html echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php 

    http://localhost にアクセスすれば、 phpinfo() が表示されるはずです。

上のステップに従うことで、 FPMSAPI モジュールとして PHP をサポートした Nginx Web サーバーを実行できるでしょう。 もちろん、さらに沢山の設定オプションが Nginx と PHP では利用可能です。 さらに多くの情報を得るには、対応するソースツリーで、 ./configure --help とタイプしてみてください。

To Top