Gadget・PC Repair & Leather Craft Workshop

macOS Sierraへのローカル開発環境構築【最小限・初心者向け】

macOS Sierra正式版がリリースされてから1ヶ月が経ち、ようやく修正版の10.12.1がリリースされました。メジャーアップデート直後恒例の不具合も対処され、プリンター等周辺機器のドライバも一通り出揃いましたので、様子見勢もそろそろアップデート実施時期かと思われます。

気になるのはこの1ヶ月散見された「macOS Sierraにアップデートしたら○○が消されてローカル開発環境に不具合が!」といった類のブログ記事。こうなってしまうと不具合の原因の切り分けがとても面倒臭そうです。

そこで一見手間に思えますが、ここは潔くmacOSをクリーンインストールして、復習がてら必要最小限の超シンプルな開発環境を再構築してみたいと思います。

Apacheを起動してlocalhostにアクセスしてみる

スクリーンショット 2016-06-19 22.31.29

macOS Sierraのクリーンインストール後、早速ターミナルを起動してApaheの起動コマンドを打ってみます。

sudo apachectl start

そしてブラウザを起動してlocalhostにアクセスしてみます。

スクリーンショット 2016-06-20 13.48.47

従来通りApacheは最初からmacOSにインストール済で即稼働可能になっているようです。

ユーザーフォルダ内にドキュメントルートを作成してみる

スクリーンショット 2016-06-20 13.35.18

ユーザーフォルダに「Sites」という名のフォルダを作成します。

次にApacheがこのフォルダをドキュメントルートとして読みに行くように、そしてその中のphpファイルを実行してくれるように「httpd.conf」「httpd-userdir.conf」「*ユーザー名*.conf」「php.ini」の4つの設定ファイルを編集します。

「httpd.conf」の編集

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-28-17-16-02

Finderメニューの「移動」→「フォルダへ移動…」をクリック。

スクリーンショット 2016-06-19 23.14.44

「/etc/apache2/」と入力して「移動」をクリック。

スクリーンショット 2016-06-20 11.14.04

バックアップのため「httpd.conf」を複製。

スクリーンショット 2016-06-20 11.15.03

ファイル操作の度にパスワードを求められるので、以降この画面が出たらmacログイン時のパスワードを入力。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-29-12-32-03

お好みのエディターで「httpd.conf」を開きます。

#LoadModule php5_module libexec/apache2/libphp5.so

LoadModule php5_module libexec/apache2/libphp5.so

169行目付近の上記項目のコメントアウトを外して保存します。

これでApache起動時にphp5のモジュールが読み込まれて、ドキュメントルート内のphpファイルを実行してくれるようになります。

「httpd-userdir.conf」の編集

次にApacheにユーザーフォルダを読みに行かせる設定をします。

スクリーンショット 2016-06-20 15.04.49

Finderメニューの「移動」→「フォルダへ移動…」をクリックし、フォルダの場所欄に「/etc/apache2/extra/」と入力して「移動」。

スクリーンショット 2016-06-20 15.06.47

「httpd-userdir.conf」をエディターで開きます。

#Include /private/etc/apache2/users/*.conf

Include /private/etc/apache2/users/*.conf

16行目のコメントアウトを外して保存します。

「*ユーザー名*.conf」の新規作成

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-29-12-54-50

Finderメニューの「移動」→「フォルダへ移動…」をクリックし、フォルダの場所欄に「/etc/apache2/extra/」と入力して「移動」。

<Directory "/Users/*ユーザー名*/Sites/">
  AllowOverride All
  MultiviewsMatch Any
  Require all granted
</Directory>

この場所に上記の内容でファイルを新規作成し、「*ユーザー名*.conf」というファイル名で保存します。設定ファイル中とファイル名の「*ユーザー名*」は、ログイン中のユーザー名(半角英字のユーザーフォルダ名)に置き換えて下さい。

「php.ini」の新規作成

「php.ini」に関してはデフォルト設定のテンプレートファイルをコピーするだけです。ターミナルで以下のコマンドを実行します。

sudo cp -p /etc/php.ini.default /etc/php.ini

以上で設定は終了です。

Apache再起動

最後に設定内容を反映させるために、ターミナルで下記コマンドを実行しApacheを再起動します。

sudo apachectl restart

念のため、macを起動したときにApacheも自動起動するようにしたいときは

sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

です。

HTML・PHPコードを動かしてみる

テストしたいHTMLファイルやPHPファイルを、最初に作った「Sites」フォルダにコピーします。

その後ブラウザでURL「http://localhost/~*ユーザー名*/ファイル名/」にアクセスすれば動作を確認できます!

XAMPPMAMPVirtualBOXを使用してテスト用仮想サーバーを立てるのもアリですが、ローカル上のファイルを直接編集してブラウザでリロードするだけでテストできるお手軽さはやっぱり手放せません。個人的にはCSV数百行レベルのデータしか扱わないので、わざわざデーターベースを稼働させる必要もないと思っています。

エラーが出る場合

私の環境では何故かそのままでもDate関数がらみのエラーは出ないですが、もし「/var/log/apache2/」フォルダの「error_log」に下記のエラーが記録されるようなら、、

PHP Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for ‘JST/9.0/no DST’ instead

「/etc/」フォルダ内の「php.ini」の下記の行を訂正してタイムゾーンを指定してやりましょう。

;date.timezone =

date.timezone = Asia/Tokyo

広告