<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/install.unix.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'install.unix.nginx.php',
    1 => 'Nginx 1.4.x (Unix システム用)',
    2 => 'Nginx 1.4.x (Unix システム用)',
  ),
  'up' => 
  array (
    0 => 'install.unix.php',
    1 => 'Unix システムへのインストール',
  ),
  'prev' => 
  array (
    0 => 'install.unix.apache2.php',
    1 => 'Apache 2.x (Unixシステム用)',
  ),
  'next' => 
  array (
    0 => 'install.unix.lighttpd-14.php',
    1 => 'Lighttpd 1.4 (Unix システム用)',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'install/unix/nginx.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="install.unix.nginx" class="sect1">
 <h2 class="title">Nginx 1.4.x (Unix システム用)</h2>

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

 <p class="para">
  このガイドは、あなたが Nginx をソースコードからビルドしたことを想定しています。
  よって、すべてのバイナリと設定は 
  <code class="literal">/usr/local/nginx</code> にあると想定しています。
  仮にこれに当てはまらず、Nginx を他の手段で取得した場合は、
  <a href="https://www.nginx.com/resources/wiki/" class="link external">&raquo;&nbsp;Nginx Wiki</a> を参照し、
  このマニュアルをあなたのセットアップに読み替えてください。
 </p>

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

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

 <ol type="1">
  <li class="listitem">
   <p class="para">
    あなたのシステム向けに Nginx を取得し、インストールするために、
    Nginx Wiki の <a href="https://www.nginx.com/resources/wiki/start/topics/tutorials/install/" class="link external">&raquo;&nbsp;install</a>
    を参照することを推奨します。
   </p>
  </li>

  <li class="listitem">
   <p class="para">
    PHP のソースコードを取得し、展開します。
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
tar zxf php-x.x.x
</pre></div>
    </div>
   </div>
  </li>

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

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
cd ../php-x.x.x
./configure --enable-fpm --with-mysqli
make
sudo make install
</pre></div>
    </div>
   </div>
  </li>

  <li class="listitem">
   <p class="para">
    設定ファイルを取得し、正しい場所に移動します。
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
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
</pre></div>
    </div>
   </div>
  </li>

  <li class="listitem">
   <p class="para">
    ファイルが存在しなかったときは、Nginx が PHP-FPM バックエンドに、
    リクエストを渡さないようにし、任意のスクリプトの挿入を防げるようにすることが重要です。
   </p>
   <p class="para">
    php.ini ファイルで、
    <a href="ini.core.php#ini.cgi.fix-pathinfo" class="link">cgi.fix_pathinfo</a> 
    ディレクティブを <code class="literal">0</code> に設定することで、
    この設定を行うことができます。
   </p>
   <p class="para">
    php.ini をエディタで読み込みます:
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
vim /usr/local/php/php.ini
</pre></div>
    </div>
   </div>

   <p class="para">
    <code class="literal">cgi.fix_pathinfo=</code> の行を探し、以下のように修正します:
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
cgi.fix_pathinfo=0
</pre></div>
    </div>
   </div>
  </li>

  <li class="listitem">
   <p class="para">
    サービスを開始する前に、php-fpm が www-data ユーザーと www-data グループで
    必ず実行されるように、php-fpm.conf も修正しなければいけません:
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
vim /usr/local/etc/php-fpm.d/www.conf
</pre></div>
    </div>
   </div>

   <p class="para">
    以下の部分を探し、修正します:
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user&#039;s group
;       will be used.
user = www-data
group = www-data
</pre></div>
    </div>
   </div>

   <p class="para">
    ここまで来れば、php-fpm サービスを開始できます:
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
/usr/local/bin/php-fpm
</pre></div>
    </div>
   </div>

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

  <li class="listitem">
   <p class="para">
    Nginx が PHP アプリケーションの実行をサポートするように設定しなければなりません。
   </p>

   <div class="informalexample">
    <div class="example-contents">
<div class="cdata"><pre>
vim /usr/local/nginx/conf/nginx.conf
</pre></div>
    </div>

   </div>

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

   <div class="informalexample">
    <div class="example-contents">
<div class="nginx-confcode"><pre class="nginx-confcode">location / {
    root   html;
    index  index.php index.html index.htm;
}</pre>
</div>
    </div>

   </div>

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

   <div class="informalexample">
    <div class="example-contents">
<div class="nginx-confcode"><pre class="nginx-confcode">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;
}</pre>
</div>
    </div>

   </div>

   <p class="para">
    Nginx を再起動します。
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
</pre></div>
    </div>
   </div>
  </li>

  <li class="listitem">
   <p class="para">
    テスト用のファイルを作成します。
   </p>

   <div class="informalexample">
    <div class="example-contents screen">
<div class="cdata"><pre>
rm /usr/local/nginx/html/index.html
echo &quot;&lt;?php phpinfo(); ?&gt;&quot; &gt;&gt; /usr/local/nginx/html/index.php
</pre></div>
    </div>
   </div>

   <p class="para">
    http://localhost にアクセスすれば、 phpinfo() が表示されるはずです。
   </p>
  </li>
 </ol>

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

</div><?php manual_footer($setup); ?>