MAMPとComposerを使ったCakePHP3.xのローカル開発環境の構築

# はじめに
CakePHP3.xを使ってWebアプリケーションを作るには、開発PC、Webサーバ、データベース、そしてもちろんPHPが必要です。これをあなたのPCにインストールする必要があります。ここでは開発PCとしてMacを使います。なぜならWeb開発者の大半はMacを使っているからです。なぜならMacは、Webサーバとして一般的に用いられるLinuxというOSに似ているからです（どちらもUNIXというOSをベースにしていますが、Windowsは全く別のOSです）。WebサーバにはApache HTTP Server（通称：Apache）がよく使われます。データベースにはPostgreSQLやMySQLが使われますがここではMySQLを使います。なぜならMySQLは大抵のレンタルサーバで使えるからです。

# MAMPのインストール

というわけで、まずはあなたのMacに、Apache、MySQL、PHPをインストールしてしまいましょう。これらをひとつひとつ手動でインストールしていっても良いのですが、実はMAMPという便利なアプリがあります。これをインストールしてしまえば、Apache、MySQL、PHPを一発でインストールすることができ、一括で管理することができます。MAMPはこちら（ https://www.mamp.info/en/ ）からダウンロードできます。ダウンロードしたらインストールして起動して下さい。サーバは「サーバを起動」というボタンから起動できます。

# デフォルトPHPの変更

実はMacにはあらかじめPHPがインストールされています。しかし今回はMAMPを使うので、MAMPでインストールしたPHPを使います。そのためには、Macでデフォルトで使用するPHPを「MacにあらかじめインストールされているPHP」から「MAMPでインストールしたPHP」へ変更する必要があります。まずは、いまMacがデフォルトで使っているPHPを確認しましょう。ターミナルで、

```
$ which php
```

と実行してみましょう。おそらく「/usr/bin/php」と返って来ると思います。これがMacにあらかじめインストールされているPHPです。これが確認できたら、デフォルトで使うPHPを変更します。Vimで~/.bash_profileを開きます：

```bash
$ vim ~/.bash_profile
```

そして次の１行を追加します：

```bash
export PATH=/Applications/MAMP/bin/php/php5.5.10/bin:$PATH
```

php5.5.10のところは、ダウンロードしたMAMPによってバージョンが異なります。MAMPの設定画面から確認して下さい。またもちろんMAMPをインストールした場所が/Applicationsでない場合はこちらも適宜書き換えて下さい。変更を保存したら、

```bash
$ source ~/.bash_profile
```

を実行して設定を再読み込みします。そしてもう一度、

```bash
$ which php
```

を実行してみましょう。今度はちゃんと「/Applications/MAMP/bin/php/php5.5.10/bin/php」と返ってきます。つまり先ほど設定した「MAMPでインストールした方のPHP」が使われていることが分かります。

# Composerのインストール

CakePHP3.xを扱うにはComposerというツールが必要になります。これはパッケージの依存関係を管理するツールで（といってもよく分からないかも知れませんが、大丈夫です）、必要なパッケージを自動でインストールしてくれたりする便利なやつです。CakePHP1.xやCakePHP2.xを使ったことのある方は、CakePHPの公式サイトからCakePHPをzipでダウンロードしてきた経験があるかもしれませんが、これはレガシーな方法です。パッケージ管理システムを使って管理する方がモダンな方法で、rubyやnode.jsなど他の言語や、他のPHPフレームワークでも一般的に使われている方法です。CakePHPも3になってようやくモダンなフレームワークの仲間入りができたというわけです。

それではComposerをインストールしましょう。まずは念のため、お使いのMacにComposerがインストールされているかいないかを確認しましょう。以下のコマンドを実行して、バージョン情報が表示されればそのバージョンのComposerが既にインストールされています。

```
$ composer -V
```

「command not found」と返って来た場合はインストールされていないので、以下の手順でインストールしましょう。好きなディレクトリ、例えば~/tmpや~/Downloadsに移動して、まずはそこにComposerをダウンロードしてきます。

```
$ cd ~/Downloads/
$ curl -sS https://getcomposer.org/installer | php
```

そしてどこからでも使えるように（グローバルインストール）、場所を移動しましょう。

```
$ mv composer.phar /usr/local/bin/composer
```

任意のディレクトリで、

```
$ composer -V
```

を実行して、バージョンが表示されれば大丈夫です。


# CakePHP3のインストール

以上で準備完了です。いよいよCakePHP本体をインストールします。CakePHPのプロジェクトを管理したいディレクトリへ移動し、以下のコマンドを実行して下さい（your-app-nameの部分は好きな名前に変更して構いません）：

```
$ composer create-project --prefer-dist cakephp/app your-app-name
```

この処理には数分かかります。だーっとログが表示されるので、エラーが出ていないか確認しましょう。最後の方で「Set Folder Permissions ? (Default to Y) [Y,n]?」と聞かれます。これは、ログ等を保存するディレクトリに書き込み権限を与えて良いかどうかを聞いています。Yと答えなければ先に進めないのでYと答えましょう。もしMAMPのPHPではなくMacにあらかじめインストールされているPHPを使っている場合は「Your requirements could not be resolved to an installable set of packages.」、「the requested PHP extension intl is missing from your system.」といったエラーメッセージが表示されるかもしれません。その場合はエラーに従って必要なモジュール等をインストールして下さい（ハマりポイントです）。処理が終わったら、カレントディレクトリに「your-app-name」という新しいディレクトリが出来てその中にたくさんのディレクトリやらファイルやらが作られていることを確認しましょう。

# 動作確認

最後に動作確認をしましょう。MAMPの設定画面から、Apacheのドキュメントルートを、先ほどの「your-app-name」ディレクトリに変更します。変更したら、

http://localhost

にアクセスしてみましょう。CakePHPのロゴが中央に大きく表示されている、緑の画面が表示されれば成功です。お疲れさまでした。もし正しく表示されない場合は、Apacheが起動しているか、ドキュメントルートの設定が反映されているかを確認してみましょう。

# さいごに

開発環境の構築は、実はCloud9等のクラウド開発環境を使うともっと簡単にできます。上記の方法で躓いた方はお試しあれ。