PHP

MAMP環境下でcomposerを使ってcakephpを導入する手順

2020年3月4日

Macでcomposerを使ってcakephpを導入する手順と書かれた画像

 

あなた
cakephpを使えるようにしたいです

 

今回はWEBアプリケーション開発も見据えてcakephpを導入する手順を紹介していきます。

備忘録にまとめたので参考にしてみてください。

 

こんな方におすすめ

  • MAMP環境下でcomposerを使ってcakephpを導入したい方
  • 各用語が詳しく知りたい方

 

【環境】

PC:Mac

PHP: 7.3.9

(PHPはMAMP導入の際に内包されているものを使う)

MYSQL:5.7.26

(MySQLもはMAMP導入の際に内包されているものを使う)

cakephp 4.0.4

(プロジェクト名/vendor/cakephp/cakephp/VERSION.txtで確認可能)

 

 

MAMPをインストール

 

公式サイトでインストール

https://www.mamp.info/en/mac/

FreeDownloadでOK

 

composer導入

 

#インストール
curl -sS https://getcomposer.org/installer | php

#/usr/local/bin/composerに移動させる
sudo mv composer.phar /usr/local/bin/

#バージョン確認
composer -V

 

バージョン確認で

Could not open input file: composer-setup.php

のエラーが出てきて

うまくいかないなら

 

alias composer='/usr/local/bin/composer'

 

を実行してみてください。

 

cakephpをインストール

 

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

を実行してください。

ちなみに

Installer corrupt

と出る時はバージョンが古い可能性があります。

以下のサイトで常に最新情報が公開されているのでうまくいかない時は参考にしてください。

https://getcomposer.org/download/

 

新規プロジェクトを作る

新規PHPプロジェクトを作りたいフォルダに移動。

以下のコマンドを実行

composer create-project --prefer-dist cakephp/app プロジェクト名

 

ここでおそらく

the requested PHP extension intl is missing from your system.

というエラーが出てきます。これはMAMPでインストールされたPHPを見てくれていないからですね。

 

MAMPのPreferencesからPHPのバージョンを確認しましょう。

 

 

7.3.9ということでしたのでMAMPのPHPにこちらのバージョンでパスを通していきます。

 

bash_profileを作成

touch .bash_profile

 

vimで編集

vim ~/.bash_profile

 

以下を貼り付けてZZで保存

export PATH=/Applications/MAMP/bin/php/php7.3.9/bin:$PATH

 

反映

source ~/.bash_profile

 

次のコマンドをうってみてください

 

which php

 

こんな感じで表示されればOK

 

/Applications/MAMP/bin/php/php7.3.9/bin/php

 

もう一回

 

composer create-project --prefer-dist cakephp/app プロジェクト名

 

これでうまくいくはず。

 

WebServerを変更して動作確認

 

今作ったcakephpのプロジェクトとMAMPをつなげます。

Selectからwebルート選択。

 

angelにしようと思ったのに名前間違えてた

 

 

あとはhttp://localhost:8888/にアクセス。

以下のようになっていればOK。

 

 

わ~いできた!てか4.0.4って眩しいな。。最新。。

 

MySQLのパスを通す

 

vimで編集。iでインサートモード

vim ~/.bash_profile

 

以下を貼り付けて保存。esc→:w→:qでOK

export PATH=$PATH:/Applications/MAMP/Library/bin

 

反映

source ~/.bash_profile

 

workbenchでconnectionを編集

 

 

これで入れたらOKです。ついでにスキーマ作成からcakephpの接続までしちゃいましょう。

 

以下クエリ実行。

CREATE SCHEMA `cake_cms` ;

USE
cake_cms; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, created DATETIME, modified DATETIME ); CREATE TABLE articles ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(255) NOT NULL, slug VARCHAR(191) NOT NULL, body TEXT, published BOOLEAN DEFAULT FALSE, created DATETIME, modified DATETIME, UNIQUE KEY (slug), FOREIGN KEY user_key (user_id) REFERENCES users(id) ) CHARSET=utf8mb4; CREATE TABLE tags ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(191), created DATETIME, modified DATETIME, UNIQUE KEY (title) ) CHARSET=utf8mb4; CREATE TABLE articles_tags ( article_id INT NOT NULL, tag_id INT NOT NULL, PRIMARY KEY (article_id, tag_id), FOREIGN KEY tag_key(tag_id) REFERENCES tags(id), FOREIGN KEY article_key(article_id) REFERENCES articles(id) ); INSERT INTO users (email, password, created, modified) VALUES ('cakephp@example.com', 'secret', NOW(), NOW()); INSERT INTO articles (user_id, title, slug, body, published, created, modified) VALUES (1, 'First Post', 'first-post', 'This is the first post.', 1, now(), now());

 

cakephp側ではapp_local.phpに以下の変更を加える。

 

'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'ユーザー名',
'password' => 'あなたのパスワード',
'database' => 'cake_cms',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
],
 
これでhttp://localhost:8888/にアクセスすると
 

 

いえーい!接続もできたぜ。

 

the requested PHP extension intl is missing from your system.

が出てきたときはお?ってなりましたがMAMPのPHP見に行けば解決する話でしたね。

それよりvimの操作がまだまだだなと感じました。

 

今回はとりあえず環境構築&動かす準備をすることを第一にしたので(数時間でぱぱっとした)今後ベストな改善策があれば随時追加します。

 

cakephp4のドキュメントもしっかり読み込まないとな。

 

僕も通ったプログラミングスクールはコチラ

>>プログラミングスクールおすすめランキング

 

プログラミングスクールに関する情報

【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】と書かれた画像
【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】

  あなたプログラミングスクールに通いたいけどたくさんありすぎてどこがいいのかわかりません。   最近はエンジニアブームということもありプログラミングスクールが増えました。 一方でたくさんありすぎてど ...

続きを見る

返金保証ありのプログラミングスクールランキング【エンジニアが選びました】と表示されたパソコンの画面
【転職保証つき】返金保証ありのプログラミングスクールランキング【エンジニアが選びました】

  あなた返金保証がついているオススメのプログラミングスクールってありますか?   結論から話すと、返金保証つきのプログラミングスクールランキングは次の通りです。   1位:DMMWEBキャンプ  【 ...

続きを見る

wordpress
【無料あり】WEB制作を学べるオンラインスクールランキング【副業で稼ぎたい方向け】

  あなたWeb制作の副業で稼ぎたいけど、どのスクールで学ぶのが良いの? スクール選びで失敗はしたくないです。   ↑このような疑問や不安を解決するべく、現役のWebエンジニアがWEB制作を学べるスク ...

続きを見る

フリーランス
無料あり:フリーランスを目指せるプログラミングスクールランキング【体験をもとに徹底分析しました】

  あなたフリーランスエンジニアを目指すことができるプログラミングスクールってありますか?   最近では、高年収や働きやすさの魅力からフリーランスエンジニアを目指す方も増えてきました。 結論から話すと ...

続きを見る

WEB系自社開発企業にいけるプログラミングスクールランキング【現役エンジニアおすすめ】と書かれた画像
WEB系自社開発企業にいけるプログラミングスクールランキング【現役エンジニアおすすめ】

  あなたWEB系の自社開発企業に就職したいです。 オススメのスクールを教えて下さい。   結論から話すと、WEB系自社開発に行きやすいスクールのランキングは以下の通り。   第1位:テックアカデミー ...

続きを見る

-PHP

S