CakePHPの新しいプロジェクトをインストールして、開発環境を構築するための手順をまとめました。
【環境】
Cake PHP 3.8
PHP 7.4.27
Homebrew 3.3.9
Composer 2.0.8
CakePHPを導入するために必要なもの
Cake PHPの導入のために、あらかじめインストールしておくことが必要なものは下記の通り。
- Xcode
- Homebrew
- PHP
- MySQL
- Composer
上記のインストール・設定方法についてまとめていきます。
Xcodeのインストール
https://developer.apple.com/jp/xcode/
Xcodeは、iPhoneアプリやmacデスクトップアプリの開発ツールです。
CakePHPの開発には直接関係ありませんが、CakePHPをインストールするときに使うHomebrewのセットアップのために必要です。
macのApp Storeで「Xcode」と検索し、「入手」ボタンをクリックしてインストールしてください。
Xcodeは6GB程度の重いアプリなので、通信環境のよいところでインストールすることを推奨します
Homebrewのインストール
Homebrewはパッケージの管理ツールで、Cake PHPが必要とするPHPやMySQLのインストールに使用されます。
念のため、インストールされているかバージョン表示で確かめておくとよいです。
ターミナルで以下を入力してEnterしてください。
$ brew -v
下記のようにバージョンが表示されたらインストール済みです。
Homebrew 2.5.11
Homebrew/homebrew-core (git revision 6b215; last commit 2020-11-21)
Homebrew/homebrew-cask (git revision 1874d; last commit 2020-11-21)
もしインストールされていた場合は、念のためアップデートを行っておきましょう。
$ brew update
$ brew upgrade
逆にバージョンが表示されなかった場合は、Homebrewのインストール作業を行います。
$ /bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>)"
上記インストールコードは変更になる可能性があります。
最新版は公式HPにて確認してください。
https://brew.sh/index_ja
PHPのインストール
PHPは基本的にPCにはインストールされているはずですが、念のためターミナルでバージョン確認をしておきます。
$ php -v
下記の通りバージョン情報が表示されたらOK。
PHP 7.3.20 (cli) (built: Jul 9 2020 23:50:54) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.20, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.20, Copyright (c) 1999-2018, by Zend Technologies
万が一、バージョン情報が表示されない場合はPHPがインストールされていないので、Homebrewを使ってインストールしておいてください。
$ brew install php@7.4
MySQLのインストール
次に、PHPがデータベースとして利用するMySQLをHomebrew経由でインストールします。
ただしこちらも最初にMySQLがすでにインストール済みでないか、念のためバージョン表示で確認しておくとよいです。
$ mysql --version
インストールされていれば、下記のようにバージョンが表示されます。
mysql Ver 14.14 Distrib 5.7.29, for osx10.15 (x86_64) using EditLine wrapper
バージョンが表示されなければ、Homebrewを使ってMySQLをインストールします。
$ brew install mysql
Composerのインストール
続いて、PHPのためのライブラリ管理ツールComposerをインストールします。
Cake PHP 本体を Composerを使ってインストールするほか、システム内で使用するライブラリの一括管理も担うので必須ツールです。
最初にバージョン表示を行い、インストール済みか確認しましょう。
$ composer -v
下記のようにバージョンが表示されたらOK。
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \\/ __ `__ \\/ __ \\/ __ \\/ ___/ _ \\/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\\____/\\____/_/ /_/ /_/ .___/\\____/____/\\___/_/
/_/
Composer version 2.0.8 2020-12-03 17:20:38
その場合は、念のためアップデートを行うとよい。
$ composer update
バージョンが表示されない場合は、Homebrew を使ってインストールしてください。
$ brew install composer
ComposerはインストールされているだけだとPATHが通っていない可能性があるので、下記コマンドにてComposerを実行できるようにしておく必要があります。
$ cd ~/bin
$ mv composer.phar ~/bin/composer
Cake PHP本体のインストール
最後に、ターミナルを使ってCake PHPをインストールする予定のディレクトリへ移動してください。
$ cd XXXXXX
下記コマンドにてプロジェクトファイルを作成します。
$ composer create-project --prefer-dist cakephp/app:3.8 プロジェクト名
最後の「プロジェクト名」の部分は好きな名前に変更してください。
処理の途中で、下記のようにパーミッション設定をどうするか聞かれるので、Y
を入力して進んでOK。
Set Folder Permissions ? (Default to Y) [Y,n]?
次に、念のためインストールされたCake PHP本体が起動できるか確認していきます。
まず今作成したプロジェクトのディレクトリに移動します。
$ cd プロジェクト名
ビルトイン・サーバーを起動させてください。
$ bin/cake server
するとターミナル上に下記のようなサーバー情報が表示されるはずです。
Welcome to CakePHP v3.8.13 Console
---------------------------------------------------------------
App : src
Path: /Applications/MAMP/htdocs/careerchart/src/
DocumentRoot: /Applications/MAMP/htdocs/careerchart/webroot
Ini Path:
---------------------------------------------------------------
built-in server is running in <http://localhost:8765/>
You can exit with `CTRL-C`
http://localhost:8765/ がサイトのトップページURLになるので、ブラウザでアクセスしてみてください。
下記のようにCake PHPの案内画面が表示されれば正常にインストールできたことになります。
ただしデータベースがまだ接続できていないので、いったんターミナル側で「Control + C」を入力してサーバーを終了させておいてください。
データベースを作成して接続
最後にCakePHPが利用するデータベースを用意して接続します。
はじめてMySQLにアクセスする場合や、MySQLサーバーが立ち上がっていない場合は最初に立ち上げておいてください。
$ mysql.server start
ターミナルからMySQLにroot権限でアクセスします。
$ mysql -u root
次にデータベースを作成してください。
mysql> CREATE DATABASE データベース名;
データベース名は自由に決めてください。
次に作成したデータベースにアクセスするためのアカウントを作成します。
mysql> CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';
上記のuser_name
とpassword
は、好きなものに書き換えてください。
その後、作成したアカウントが作成したデータベースを操作できるように権限を付与する必要があります。
mysql> GRANT all ON careerchart.* TO 'user_name'@'localhost' IDENTIFIED BY 'password';
こちらもuser_name
とpassword
は作成したアカウントの内容で置き換えてくださいね。
権限付与できたらrootアカウントからログアウトします。
mysql> exit;
環境設定ファイル .env の作成
環境に依存する設定値を管理する.env
ファイルに、データベースへの接続情報を記載します。
config
ディレクトリにある.env.default
ファイルを.env
に名称変更してください。
.env
には以下のように記述します。
export DB_HOST="localhost"
export DB_USERNAME="MySQLで作成したユーザー名"
export DB_PASSWORD="MySQLで作成したユーザーのパスワード"
export DB_DATABASE="データベース名"
ホスト名、ユーザー名、パスワード、データベース名は適宜書き換えてください。
最後に、ここで設定した環境変数が使えるようにするために、config
ディレクトリにあるbootstrap.php
から下記の部分を探してコメントアウトを外してください。
if (!env('APP_NAME') && file_exists(CONFIG . '.env')) {
$dotenv = new \josegonzalez\Dotenv\Loader([CONFIG . '.env']);
$dotenv->parse()
->putenv()
->toEnv()
->toServer();
}
おそらく57行目あたりにあるはずです。
プロジェクト内でデータベースへの接続情報を追記
データベースとの接続情報はconfig/app.php
にて記述します。
254行目あたりに下記のような記述があるはずです。
'Datasources' => [
'default' => [
'className' => Connection::class,
'driver' => Mysql::class,
'persistent' => false,
'host' => 'localhost',
/*
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'my_app',
先ほど.env
に記述したアクセス情報を呼び出すには、env('XXXXXX')
にて可能です。
そこで下記のように書き換えます。
'Datasources' => [
'default' => [
'className' => Connection::class,
'driver' => Mysql::class,
'persistent' => false,
'host' => env('DB_HOST'),
/*
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'database' => env('DB_DATABASE'),
これでデータベースに接続されます。
このように表示されたらOKです。
まとめ
CakePHPの開発環境を構築するには、下記の手順で行います。
- Homebrew、Composerなどの必要なものをインストール
- Composer経由でCakephp本体をダウンロード
- データベースを用意
- .envファイルを用いて、データベースに接続するための設定を追記
手順が多いのでわからなくなりそうですが一つずつ確認していけば環境は構築できるので、この記事を参考に環境構築をしていってくださいね。
コメント