MAMPでCakePHP3.8の環境構築がしたい

Webアプリを作るにあたって、まずMAMPでCakePHP3.8の環境構築がしたいと思いました。

 

MAMPとは、基本的にインストール作業を行うだけで、特に初期設定も必要なく、PHPなどを使用したWEB開発が手軽に始められるツールです。

 

そしてCakePHPですが、RailsからインスパイアされているPHPフレームワークです。

こちらも規則を守れれば、手軽にWebアプリが作れると言われています。

なぜ3系なのかと言えば、自分が読んだ下記の教材で取り上げられてたのが3系だったからです。

CakePHP 超入門 | 掌田津耶乃 | 工学 | Kindleストア | Amazon

もっと言えば、なぜ3.8のバージョンかと言えば、プログラミングスクール時代に3.9を使っていた人が「4系のような仕様でやばい!」と言っていたので、3.9ではなく3.8にしました。

 

【自分の作った環境】

macOS Catalina
PHP7.4.2
CakePHP3.8
MAMP5.7
Apache2.2
MySQL5.7

 

このようになっています。

 

【ステップ】

MAMPのインストール(割愛)

・composerのインストール

・composerを使ったCakePHPのインストール

CakePHPのデータベース設定

 

このようになっています。

(目次)

composerのインストール


まずcomposerのインストールです。

入っているかどうかの確認コマンドとして、

(ターミナル画面)

composer -V

これで

Composer version 2.0.8 2020-12-03 17:20:38

みたいに出てきたら、入ってます。

zsh: command not found: composer

こうなったらcomposer自体をダウンロード&インストールしましょう。

Composer

こちらでダウンロードしてください。

英語なので戸惑いますが、2本指クリックして「日本語に翻訳」するとだいたい読めるかと思います。

枠の中の4行をターミナルで行って、

Composer (version 2.0.8) successfully installed to: /Users/(ユーザー名)/composer.phar

となればダウンロード完了です。

次はcomposer.pharファイルを “/usr/local/bin/”ディレクトリ へ移動します。

sudo mv composer.phar /usr/local/bin/composer

※“/usr/local/bin/”ディレクトリがない方は、下記コマンドでディレクトリ自体を作りましょう。

sudo mkdir /usr/local/bin
sudo mv composer.phar /usr/local/bin/composer

ここまで来たら、再度composerのバージョン確認をしましょう。

composer -V

これでバージョンが出なかったら、PATHが通っていません。

~/.zshrc(macOSがCatalinaより前だったら ~/.bash_profile )に任意のPATHを追記しましょう。

qiita.com

上記のサイトがとてもわかりやすいです。

ここまでで恐らくcomposerインストールまで行けたと思います。

composerを使ったCakePHPのインストール

ここからは「composerを使ったCakePHPのインストール」です。

MAMPのhtdocsにインストールしたいので、 /Applications/MAMP/htdocs/ に移動(cd)します。

cd /Applications/MAMP/htdocs/

いよいよcomposerを使ったインストールです。
今回は3.8のバージョンをインストールしたいので、「:^3.8」と付けています。
{プロジェクト名}は自分のWebアプリのディレクトリ名になるので、アプリ名に変えてください。

composer create-project --prefer-dist cakephp/app:^3.8 {プロジェクト名}

上手く行けばOKです。
しかしだいたいここでこういう表示が出るかと思います。

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - cakephp/cakephp[3.9.0, ..., 3.9.5] require ext-intl * -> it is missing from your system. Install or enable PHP's intl extension.
    - Root composer.json requires cakephp/cakephp 3.9.* -> satisfiable by cakephp/cakephp[3.9.0, ..., 3.9.5].

これは翻訳すると何となくわかるのですが、「PHPのintl拡張機能をインストールするか、有効にしてください。」と言われています。
たぶんPHPのintl拡張機能はインストールしていないと思うので、しに行きます。

まずHomebrewが入っているか確認してください。

(ターミナル画面)

brew -v

入ってなかったら、下記サイトを参考にしてインストールしてください。

Homebrewのインストール - Qiita

自分は多少エラーが出ましたが、気にせず行きました。

次にmacOSに元々入っているPHPではintl拡張機能がないので、Homebrewを通してPHPをインストールします。
自分は何となく7.3のバージョンにしました。

brew install php@7.3

盛大にインストールされますが、まだmacOSPHPから切り替わっていません。

php -v

これをすると、日時が古いままだと思います。

そこでPATHがzshの場合、下記のコマンドをします。

brew link --force php@7.3
source ~/.zshrc

これでPHPのバージョンを確認してみてください。

php -v

恐らく日時が最近になっているはずです。

できなかったらコメントやTwitterなどでお尋ねください。

これでようやくPHPのintl機能拡張ができました。

さっきのcomposerコマンドをもう一度やります。

composer create-project --prefer-dist cakephp/app:^3.8 {プロジェクト名}

これで多少のエラーは出るかもしれませんが、無事CakePHPの3.8のバージョンがインストールでき、MAMPのhtdocsにディレクトリができているはずです。

ここで「http://localhost:8888/アプリ名」をURLに入れれば、CakePHPのウェルカム画面が表示されるはずです。

データベースの設定

あとはデータベースの設定だと思います。

ウェルカム画面のデータベース欄を見ると「データベースに接続できません」というメッセージが出ています。

まずphpMyAdminでアプリ名そのままのデータベースを作ります。

そして/Applications/MAMP/htdocs/(アプリ名)/configにあるapp.phpを開きます。

その中にあるdatasourcesのdefaultという項目のあたりに、

・username
・password
・database

という小項目があるので、それぞれroot、root、[アプリ名]を入れましょう。

アプリ名は先ほどphpMyAdminで名付けたデータベース名です。

ここで誤ってdatasourcesのtestという項目の方をいじらないように気をつけてください。

自分はそこで軽くハマりました。

これでウェルカム画面に戻るとデータベースのアイコンが緑になっていると思います。

最後に

長くなりましたが、以上となります。

intl拡張機能の辺りが個人的には一番ハマりました。

環境構築って難しいですよね。

この説明を執筆するにあたって、下記のサイトを参考にさせていただきました。

codeforfun.jp

最後まで読んでいただき、ありがとうございました。