PHP
Mac
nginx
OSX
homebrew

Mac初心者がEl Capitanにnginx + php 環境を構築してハマったメモ その2

More than 1 year has passed since last update.

※この記事は「Mac初心者がEl Capitanにnginx + php 環境を構築してハマったメモ その1」の続きです。

その1で各種アプリのインストールの土台が出来上がりました。

ここから様々なツールをインストールしていきます。


gitのインストール

GitHubなどで知られるバージョン管理ツールです。

$ brew install git

〜インストールに関するメッセージがずらずら出る〜

インストール後にwhich gitと入力して、実行ファイルの場所を確認しましょう。

/usr/local/binなら正しいパスになっています。

違っていたら「その1」のパス設定を確認してください。

$ which git

/usr/local/bin/git


nginxのインストールと起動

これもHomebrew使うので超簡単です。

$ brew install nginx


nginx自動起動

OSXではログオン時の自動起動にLaunchAgentsというものを使います。

GUIだとシステム環境設定>ユーザーとグループ>ログイン項目がありますが、あれのCLI版だと思ってください。

LaunchAgentsは~/Library/LaunchAgents内にある設定ファイルから起動します。

下記のコマンドで設定ファイルのエイリアスを作り、LaunchAgentsのコントローラーに読み込ませます。

$ ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents

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

ブラウザで http://localhost:8080/ を開いてみましょう。

nginxの表示が出たらインストールは成功です。

自動起動をやめるには下記のコマンドを実行します。

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

単純にnginxを停止、再起動させたいなら下記のコマンドです。

$ sudo nginx -s stop

$ sudo nginx -s reload

ちなみに「~」というのはユーザー毎のホームディレクトリを意味します。

ユーザー名「hoge」なら/Users/hogeを意味します。


nginx設定

初期設定ではポート8080番、ドキュメントルートは/usr/local/var/wwwになっています。

80番はOSX標準のApacheがすでに使っているので、変更可能ですが面倒なので省略します。

ドキュメントルートを/Users/hoge/wwwに変更してみましょう。

設定ファイル/usr/local/etc/nginx/nginx.confを編集します。


/usr/local/etc/nginx/nginx.conf

〜中略〜

server {
listen 8080;
server_name localhost;
〜中略〜
location / {
root /Users/hoge/www/;
index index.html index.htm;
}
〜中略〜

保存したらnginxを再起動させます。

$ sudo nginx -s reload

上記ディレクトリに適当なファイルを置いて、ブラウザから表示できたら成功です。


PHPのインストール

Homebrewが参照するリポジトリを増やします。

$ brew tap homebrew/dupes

$ brew tap homebrew/versions
$ brew tap homebrew/homebrew-php

PHPをインストールします。

$ brew install php70

色々なサイトを見ていると brew install php56 -with-fpm という記述がありますが、何故か上手くいかなかったのでオプション無しでやりました。


追記:PHP7について(2016.8.21)

記事掲載時ではPHP5.6系でしたが、現在はPHP7のほうが良いので書き換えました。

なお、すでにPHP5.6系を入れいてアップデートしたいという場合は、下記の記事が参考になります。

参考:PHP5系からPHP7に移行した。(Homebrew


PHP自動起動

nginxと同様にログイン時に自動起動するように設定します。

$ ln -sfv /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/

$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist

自動起動を止めるときは下記のコマンドを実行します。

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


nginxの設定

PHPをインストールしましたが、このままではブラウザから表示できません。

再びnginxの設定を編集します。


/usr/local/etc/nginx/nginx.conf

〜中略〜

location ~ \.php$ {
root /Users/hoge/www/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
〜中略〜

初期設定では下記のようになっていて、そこでつまづきました。


/usr/local/etc/nginx/nginx.conf

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;


ひとまずここまでの設定でPHPの表示が出来ると思います。