PHP
Windows
nginx

NginxでPHPの開発環境構築

最近行く先々の現場で耳にするNginx
Webサーバらしいですが、Apatchとの違いもいまいち分からず、なんとなくで作業しちゃっています。
特徴やApatchとの違いも勉強しつつ、とりあえず自分のPCに環境構築や!
ということで、その際の手順をメモしようと思いました。

実施OS:Windows10 Pro

Nginxのインストール

まずはNginxのインストールです。
nginx: downloadから、zipファイルをダウンロードします。
バージョンが3つほどあると思いますが、
Mainline version ⇒ メインのバージョン
Stable version ⇒ 安定版
Legacy versions ⇒ 古いバージョン
的な意味なので、自分は安定板のnginx/Windows-1.12.1をダウンロードしました。
ダウンロードしたzipファイルはC直下に展開します。
私はフォルダ名をnginx-1.12.1にしました。

PHPのインストール

次はPHPをインストールします。
PHPを選択した理由としては、なんか簡単そうだったからです。
PHP: Downloadsから、またまたzipファイルをダウンロードします。
とりあえず最新版でいいかという感じで、
Current Stable PHP 7.1.7の欄にある、Windows downloadsをクリックします。
遷移先で、自分のPCにあったZipをクリックして、ダウンロードします。
ちなみに私のPCは64ビットなので、VC14 x64 Thread Safeのzipファイルをダウンロードしました。

Non ThreadThreadとは?
と気になる方もいるかもしれませんが、

スレッドセーフである、というのは、Windows 上の Apache 2 のような,
マルチスレッドのウェブサーバーでも動作するバイナリだという意味です。
スレッドごとにローカルストレージのコピーを作成し、
別のスレッドとデータの衝突を起こさないようにしています。

よく分からなかったので、私はとりあえずThreadの方を選択しました。
ダウンロードしたものを解体したのち、
私はフォルダ名をphp-7.1.7にしてC:nginx-1.12.1直下に置きます。

nginx.confの編集

C:\nginx-1.12.1\conf\nginx.confの65~71行目からコメントアウトを外して、
fastcgi_paramの部分を以下のように変更します。

nginx.conf
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  c:/nginx-1.12.1/html$fastcgi_script_name;
    include        fastcgi_params;
}

start&stopファイルの作成

C:nginx-1.12.1直下に、以下2つのファイルを作成します。

start-nginx.bat
@ECHO OFF
cd c:\nginx-1.12.1
start c:\nginx-1.12.1\nginx.exe
start /b c:\nginx-1.12.1\php-7.1.7\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx-1.12.1\php-7.1.7\php.ini
ping 127.0.0.1 -n 1>NUL
echo Starting nginx
echo .
echo .
echo .
ping 127.0.0.1 >NUL
EXIT
stop-nginx.bat
@ECHO OFF
cd c:\php-7.1.7
c:\php-7.1.7\nginx.exe -s stop
taskkill /f /IM php-cgi.exe
EXIT

作成後、start-nginx.batでnginxの起動、stop-nginx.batで終了ができます。
起動している間はコマンドプロンプトもずっと起動しています。

起動時しない場合

私は初回起動時、以下メッセージが出て起動できませんでした。

コンピューターにVCRUNTIME140.dll がないため、プログラムを開始できません。
この問題を解決するには、プログラムを再インストールしてみてください。

なんだこりゃと思ったらVisual Studio 2015 の Visual C++ 再頒布可能パッケージ
というのがないのが原因らしいので、
以下からダウンロードしたのちインストールしたら起動できました。
https://www.microsoft.com/ja-jp/download/details.aspx?id=48145

PHPコードの実行

phpファイルは、C:\nginx-1.12.1\htmlに作成します。
とりあえず以下を作成しました。

index_p.php
<?php
  echo "Hello PHO for NGINX!!";
?>

そして http://localhost/index_p.php を開くと、

出ました!

とりあえずここまでは割とスムーズに行きました。
分からないことだらけのnginxですが、これからどんどん学んでいこうと思います。