CakePHP4 のセットアップからlocalhostでのMySQLへのデータベース接続まで

スポンサーリンク

Mac環境でCakePHP4のシンプルなアプリケーション(スケルトン)をセットアップし、MySQLをインストールしてデータベース接続するところまでのMEMOです。

CakePHP4をセットアップしローカル環境で立ち上げる

ターミナルを立ち上げてからcomposerでセットアップします。composerのセットアップまでは、ここでは省略しています。

  1. ターミナルを立ち上げる。
  2. cd {セットアップしたいところまでのパス}
  3. composer self-update && composer create-project --prefer-dist cakephp/app:4.2 {プロジェクト名} 
    ※ 「4.2」部分は「*」とか「4.2.10」とか「4.2.*」とかだとエラーになりました。
  4. cd {プロジェクト名}
  5. bin/cake server -p 8765 でCakePHP起動。

MySQLをインストールし起動

なんか前にセットアップしていたMySQLがエラーを出して動かなくなっていたので再インストール。rootのパスワード設定まで。

こんなエラー

ERROR! The server quit without updating PID file

事象 mysql使って作業している最中、Macが突然シャットダウン。 スタートできない $ mysql.server start Starting MySQL .. ERROR! The server quit witho...

これの通り対処

  1. sudo rm -rf /usr/local/var/mysql
  2. brew uninstall mysql
  3. brew install mysql
  4. mysql.server start ※ インストール直後は自動的に起動
  5. mysql -uroot
  6. mysql> set password for root@localhost='パスワード';
  7. mysql> flush privileges;
  8. mysql> quit

Adminerをセットアップ

Php一枚でPhpMyAdminみたいなことができる非常にシンプルなものなのでコレでMySQLにログイン。

  1. Adminer をダウンロード
  2. {CakePHP4のプロジェクトルート}/webroot/adminer にダウンロードした「adminer-4.8.1.php」を配置。(アクセスしやすいようにファイル名を「adminer.php」としておきました)
  3. http://localhost:8765/adminer/adminer.php?username=root と上記で設定したパスワードでログイン。
  4. 「データベースを作成」でこのプロジェクト用のデータベースを作成。(例:「_mskg_hoge」

CakePHPでローカルのMySQLにデータベース接続

/config/app_local.php を開き、Datasourcesのdefaultに対し、username, password, database を指定。

'Datasources' => [
    'default' => [
        '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' => 'root',
        'password' => '{パスワード}',

        'database' => '_mskg_hoge',

http://localhost:8765 を叩いて、「Database」部分が

CakePHP is able to connect to the database.

となればOK。

Cakephp4

以上