nginx + PHP-FPM(on windows10)


開発用WindowsPCにて、nginx + PHP-FPMの環境を構築した際のメモ。

基本情報

  • 執筆:2018/4/25
  • OS:Windows10(64bit)
  • nginx ver:1.14.0
    ダウンロード:https://nginx.org/en/download.html
  • PHP-FPM ver:7.2.4(VC15 x64 Non Thread Safe)
    ダウンロード:https://windows.php.net/download/
    ※よく分かっていないのですが、nginxと組み合わせる際はNon Thread Safe版の方が良い(というか必須?)

ディレクトリ構成

以下のとおりとしました。

C:\
  └ dev\
      └ server\
          ├ htdocs\                         ← (1)ソースファイル(html)
          │   └scripts\                     ← (2)ソースファイル(php)
          ├ nginx-1.14.10\                  ← (3)nginxモジュール
          └ php-7.2.4-nts-Win32-VC15-x64\   ← (4)phpモジュール

nginxのセットアップ

  1. 解凍して先に記載のディレクトリ構成のとおりにフォルダ/ファイル配置。
  2. conf\nginx.confをデフォルトから以下のとおり修正
    ※横着ですが元ファイルとの比較結果画像を以下に掲載します。

  3. nginx-1.14.10フォルダにあるnginx.exeを実行。START nginx.exe
  4. server\nginx-1.14.0\logs\error.logに[emerg],[error]レベルのログが出ていないことを確認。

PHP-FPMのセットアップ

  1. 解凍して先に記載のディレクトリ構成のとおりにフォルダ/ファイル配置。
  2. php-7.2.4-nts-Win32-VC15-x64フォルダ直下の「php.ini-development」をコピー&ペーストし「php.ini」にリネーム。
    ※用途に応じて「php.ini-development」と「php.ini-production」を使い分ける。

動作確認準備

  1. htdocsに確認用のindex.htmlを配置
  2. htdocs\scriptsに確認用のindex.phpを配置

起動&動作確認

  1. phpの起動:php-7.2.4-nts-Win32-VC15-x64フォルダにあるphp-cgi.exeを実行。php-cgi.exe -b 127.0.0.1:9000`
  2. nginxの起動:nginx-1.14.10フォルダにあるnginx.exeを実行。START nginx.exe
  3. 『動作環境準備』にて配置したhtml、phpが正常に表示されることを確認。
    http://127.0.0.1/index.html
    http://127.0.0.1/index.php

停止

  1. nginxの停止:nginx.exe -s quit
  2. phpの停止:Taskkill /im php-cgi.exe
    ※phpの方は本当にこんな方法で良いのか要調査…。

起動時の工夫

  1. phpについてはコマンドプロンプトが開きっぱなしになりますが、以下のページの手法で隠すことができる。
    https://www.nginx.com/resources/wiki/start/topics/examples/phpfastcgionwindows/