Terminal

MacにHomebrewでNginx+PHPの学習環境を作る!

2017.12.06

2018.01.04

Macで学習

MacにPHPの学習環境を作ろうと思います。
MAMPを使えばあっという間に環境が整うのでしょうが、それでは環境作りの知見が広がりませんので、MAMPは使わずHomebrewでPHPとNignxをインストールし、環境を構築します。Homebrewについては「Macでプログラム学習環境構築するならHomebrewが色々便利」を参考にしていただければと思います。

Nignxのインストール

まず、Nginxのインストールからです。

$ brew install nginx

インストールが完了したらNginxを起動してみます。

$ nginx

起動状態をブラウザか下記コマンドで確認します。

$ curl http://127.0.0.1:8080/

起動が確認できれば一旦終了します。

$ nginx -s stop

PHPのインストール

続いてPHPのインストールです。 まずPHPをインストールするために必要なリポジトリhomebrew/phpを追加します。そのために必要なhomebrew/dupesも合わせて追加します。

$ brew tap homebrew/dupes
$ brew tap homebrew/php

PHP7系をインストールしたいのでbrew searchコマンドでphpを検索します。

brew search php7

php72があったので7.2もインストールできますが、リモートと環境を合わせたかったので今回はphp7.1をインストールすることにします。

インストールが完了すると「launchdで起動し…」的なメッセージが表示されましたので、そのようにします。

cp /usr/local/opt/php71/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php71.plist

終了するときはunloadで終了します。

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.php71.plist

Nginxの設定

Nginxの設設定を行います。

$ vi /usr/local/etc/nginx/nginx.conf

別にviで編集しなくてもパスを辿って直接ファイルを編集してもOKです。ファイルを開くと65行目あたりにlocation ~ \.php$の記述がありますので、該当ブロックのコメントアウトを外します。コメントアウトを外したらNginxを起動し/usr/local/var/wwwにinfo.phpファイルを作って早速アクセスしてみまます。

<?php phpinfo(); ?>

「File not found」と出ましたのでエラーログファイルを確認します。

$ cat /usr/local/var/log/nginx/error.log

ログファイルの内容を見てわからなくてもGoogle先生に聞くことができます!

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

上記のようなエラーが出ていました。rootとfastcgi_paramの設定がまずいらしいので変更します。

location ~ \.php$ {
    root          /usr/local/var/www;
    # root   html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi_params;
}

設定を変更したのでNginxのリロードを行います。

nginx -s reload

http://127.0.0.1:8080/info.phpとりあえずアクセスできました!

Nginxの自動起動

とりあえず無事?NginxとPHPがインストールできましたので、Nginxもlaunchdで自動起動するようにします。

$ ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

終了するときはPHPと同じくunloadで!

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

言語の学習って環境構築のハードルが高い!

PHPをコピペでなんとか出来るから卒業したくてちゃんと覚えようと思い環境の構築を行ったのですが、環境構築のハードルが高い!まとめてしまうとこれだけの内容ですが、いちいち詰まってしまいました。

MySQL+phpMyAdmin

引き続きMySQL+phpMyAdminのインストール・設定を行うなら「MacのNginxにHomebrewでMySQL+phpMyAdminをインストールしてみた」を参考にしていただければと思います。

WEBSITE DESIGN REQUEST

ホームページ制作依頼について

W・D・Sでホームページ制作をご希望の方はお気軽にご相談ください。
制作内容、ご予算、納期をお知らせいただくとスムーズです。

ホームページ制作を相談する