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自体をダウンロード&インストールしましょう。
こちらでダウンロードしてください。
英語なので戸惑いますが、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を追記しましょう。
上記のサイトがとてもわかりやすいです。
ここまでで恐らく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
入ってなかったら、下記サイトを参考にしてインストールしてください。
自分は多少エラーが出ましたが、気にせず行きました。
次にmacOSに元々入っているPHPではintl拡張機能がないので、Homebrewを通してPHPをインストールします。
自分は何となく7.3のバージョンにしました。
brew install php@7.3
盛大にインストールされますが、まだmacOSのPHPから切り替わっていません。
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拡張機能の辺りが個人的には一番ハマりました。
環境構築って難しいですよね。
この説明を執筆するにあたって、下記のサイトを参考にさせていただきました。
最後まで読んでいただき、ありがとうございました。