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のドキュメントもしっかり読み込まないとな。

 

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

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

 

-PHP

Copyright© エンジニアてんし君ブログ , 2020 All Rights Reserved.