Help us understand the problem. What is going on with this article?

MacにCakePHPを入れたい

MacでCakePHPを使ったWebアプリ開発をしたいので手順を調査
スーパーしょしんしゃなので当たり前のこともいちいちメモしています

環境状況

  • Mac OS Catalina 10.15.2
  • HomebrewでPHP, composer, Apacheをインストール済み
    • PHP7.3

調べてわかったこと

  • CakePHPは依存性管理ツールcomposerを使ってインストールする(公式より)
  • MacでCakePHPのインストールをすると「intlがない」と言われがち
    • 今はHomebrewでintlをインストールはできないのでbrew install intlが書いてあったらスルー1
  • mbstringsimplexmlはHomebrewでインストールしたPHPなら初めから入ってそう(参考 - Qiita

必要なもの

公式より

  • HTTP サーバー(Apache)
  • PHP 5.6 以上 (PHP 7.4 も含む)
  • mbstring PHP 拡張
  • intl PHP 拡張 ← 実際いなかったのでインストールした
  • simplexml PHP 拡張

intlのインストール

【pecl?brew?】MacのPHPのintlインストール方法 | Suwaru

  1. $ php -m | grep intl → ない
  2. PATHが通っているか確認 → 通ってなかった($ which php/usr/bin/php
  3. PATHを通す($ export PATH=/usr/local/bin:$PATH
  4. Terminalを開き直す ※やってない
  5. PHPを上書きで設定し直す($ brew link --force php@7.3
  6. 確認 ↓
$ which php
/usr/local/bin/php

$ php -m | grep intl
intl

出ました~

「PATHを通す」について

PATHを通すの意味がよくわかっていなかったけど、
コマンド検索パス(コマンドサーチパス)2を追加することらしい
$ which ○○で○○コマンドの実行ファイルがどこに格納されているのか確認できる
参考 - Qiita
PATHの通し方については以下参照
macでPATHを通す方法 | Qiita

手順

公式のやり方

一旦整理
バージョンはCakePHP3.8

クイックスタートガイド
インストール
※内容はほぼ一緒

1. PHPのバージョンを確認

$ php -v

PHP 5.6 (CLI) 以上がインストールされていることを確認

2. Composerのインストール

公式だとMacでのインストール方法がよくわからなかったので、Macのやり方で調べて頻繁に見かけたものを記載
→ 公式のやつでもできそう?(参考 - Awesome Blog

$ # curlコマンドでComposerインストーラを取得
$ # インストーラをPHPで実行
$ curl -sS https://getcomposer.org/installer | php

$ # composerコマンドとして利用できるようにするためにフォルダ移動
$ mv composer.phar /usr/local/bin/composer

$ # ターミナルを再起動

$ # きちんとできているか確認
$ which composer
$ composer -V

※Homebrewでインストール(brew install composer)した場合、PATHを通すのは勝手にやってくれてるっぽい

☆ curlコマンド

HTTPアクセスをしてコンテンツを取得できるコマンド
Linuxに入っているwgetコマンドのMac版
参考 - hydroculのメモ

☆ -sSオプション

ダウンロードの進捗状況は表示させないが、エラーがあればメッセージを表示する
参考 - とあるプログラマの資産形成ブログ

3. CakePHPプロジェクト作成

CakePHPの新しいアプリケーションを作成
プロジェクトを作成したい場所で以下のコマンドを実行

$ php composer.phar create-project --prefer-dist cakephp/app:3.8 プロジェクト名

$ # Composerにパスが通ってる(コマンドとして使えるようにしてある)場合は以下でも可能
$ composer self-update && composer create-project --prefer-dist cakephp/app:3.8 プロジェクト名

$ composer 〜の方で実行

実行結果(折り畳み)
You are already using composer version 1.9.2 (stable channel).

Installing cakephp/app (3.8.0)
  - Installing cakephp/app (3.8.0): Downloading (100%)         
Created project in my_app_name
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 78 installs, 0 updates, 0 removals
$ # 以下略

一度 Composer がアプリケーションの雛形とコアライブラリーをダウンロードしたら、 インストールした CakePHP アプリケーションを Composer から操作できるように しておくべきです。 必ず composer.json と composer.lock ファイルは残しておきましょう。

だそうです
はて

4. インストールの確認(サーバ接続)

開発用サーバの場合

デフォルトホームページを確認してインストールが正しいことを確かめるために、開発用サーバーを起動する

$ # (3.で作成したプロジェクト)
$ cd /path/to/our/app 

$ bin/cake server

実行結果(折り畳み)
Welcome to CakePHP v3.8.8 Console
---------------------------------------------------------------
App : src
Path: /Users/ユーザ名/my_app_name/src/
DocumentRoot: /Users/ユーザ名/my_app_name/webroot
Ini Path: 
---------------------------------------------------------------
built-in server is running in http://localhost:8765/
You can exit with `CTRL-C`
[Thu Jan 23 23:22:18 2020] [::1]:49580 [200]: /css/base.css
[Thu Jan 23 23:22:18 2020] [::1]:49582 [200]: /css/style.css
[Thu Jan 23 23:22:18 2020] [::1]:49583 [200]: /css/home.css
[Thu Jan 23 23:22:19 2020] [::1]:49585 [200]: /img/cake.logo.svg
[Thu Jan 23 23:22:19 2020] [::1]:49587 [200]: /font/cakedingbats-webfont.woff2
[Thu Jan 23 23:22:20 2020] [::1]:49594 [200]: /favicon.ico

http://localhost:8765/ にアクセス3

(追記)
$ cd /path/to/our/appやったら、「そんなものはない」と言われたので、
後述のように作成したプロジェクトに移動しました

公開用サーバの場合

http://www.example.comでアクセスできるようにする
→ Apacheでやる場合はDocumentRootを変更する権限が必要になる(かも)

インストール時に指定したフォルダは以下のような構成になる

/my_app_name/
    bin/
    config/
    logs/
    plugins/
    src/
    tests/
    tmp/
    vendor/
    webroot/ ←←← DocumentRootになるやつ
    .gitignore
    .htaccess
    .travis.yml
    composer.json
    index.php
    phpunit.xml.dist
    README.md

Apacheを利用している場合は以下のように指定
$ DocumentRoot /my_app_name/webroot
→ Webサーバが正しく設定されていれば http://www.example.com からCakePHPアプリケーションにアクセスできる

開発用サーバ$ bin/cake server実行結果で

DocumentRoot: /Users/ユーザ名/my_app_name/webroot

とあるので、開発用サーバを既に動かしていたらDocumentRootの指定いらない?

5. mod_rewriteの設定

リンク切れを解消するために設定する
必須なのかがよくわからない
難しかったので自分がぶち当たるまでは放置

その他調べて出てきた方法

■ 起動の確認方法

$ # 起動の確認(別ターミナルで行う)
$ curl -I  http://localhost:8765/

$ # ポート番号の確認(別ターミナルで行う)
$ lsof -i:8765

終了はCtrl+ C
参考 - Qiita

うまくいったら

データベース接続に進む
進んだ


  1. PHP関連のformulaeが大幅に変更されて、"homebrew/php"がなくなったかららしい 

  2. シェルがコマンド実行ファイルを探しに行くパス 

  3. CakePHPのポート番号は"8765" 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした