こんにちはRujuuです。
先日初めてPHP、CakePHPに触れたのですが、基本の「き」からつまずいてしまいました。
今回はそんなCakePHP3.xの初期設定とデータベース接続について、つまずきポイントをカバーしつつ紹介します。
本記事の環境です。
- XAMPP 7.4.29
- Windows 11
- PHP 7.4.29
- Apache 2.4.53
- 10.4.24-MariaDB
- CakePHP 3.10.4
MariaDBはMySQLから派生したDBなので、代わりにMySQLを使用してもOKです。
コマンドプロンプトか、XAMPPのコントロールパネルのShellで、xamppのフォルダ内のhtdocsまで移動します。
cd /c/xampp/htdocs/
もし移動できなければ、代わりに以下のコマンドを入力してください。
cd ../../xampp/htdocs
移動出来たら下記コマンドでプロジェクトを作成します。
「^3.10」はCakePHPのバージョンを指定しており、「relation_sample」は作成するプロジェクトの名前(フォルダ名)を指定しています。
composer create-project --prefer-dist cakephp/app:^3.10 relation_sample
実行するとインストールが開始されますので、英語でなにか聞かれたら「y」を入力してENTERしてください。
これでCakePHPのプロジェクトは作成完了です。
XAMPPのApacheのポートを変更していなければ、「http://localhost/relation_sample/」。
ポートを変更していれば、「http://localhost:ポート番号/relation_sample/」。
でCakePHPが動いているか確認してください。
動いていれば下記のような画面になるはずです。
次にデータベースを作成するため、phpmyadminページへ入ります。
Apacheのポートを変更していなければ、「http://localhost/phpmyadmin/」で入れるはずです。
入ったら、下記画像の赤丸部分をクリックしてデータベースを作成していきます。
データベース名はなんでもよいのですが、とりあえず「relation_sample」という名前で作成しておきます。
作成をクリックすればデータベースが作成されます。
データベース接続
続いてデータベースに接続していきます。
先ほど「http://localhost/relation_sample/」にアクセスした際、Database欄になにやらデータベースに接続できないと表示されたかと思います。(CakePHP is able to connect the database.と表示された方は接続済みです)
これを解決するために、VScodeなどのコードエディタ・テキストエディタなどで、「/c/xampp/htdocs/relation_sample/config/app_local.php」を開いてください。
「relation_sample」の部分は貴方様のお決めになったプロジェクト名です。
開いたら、37行目~52行目付近を下記のように編集していきます。
'Datasources' => [
'default' => [
'host' => 'localhost',
// XAMPPのMySQLポートを変更している場合は下記のように記載
//'port' => '3309',
/*
* 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' => 'relation_sample',
'log' => true,
'url' => env('DATABASE_URL', null),
],
],
5行目の’port’は、XAMPPのMySQLのポートを変更している場合のみ記載してください。
13~15行ではデータベースへ接続するための情報を書いています。
デフォルトだと’username’がmy_app、’password’がsecret、’database’が’my_app’となっていますが、データベースのデフォルトのユーザー名はroot、パスワードが空白なため上記のように設定します。
‘database’では先ほど「データベース作成」で作成したデータベースの名前を入力します。
上記のように編集が終わりましたら、ファイルを保存してもう一度http://localhost/relation_sample/にアクセスしてみてください。
今度は下記画像のように「CakePHP is able to connect the database.」と表示されたはずです。
ここまで読んでくださり、ありがとうございました。
本記事の通り作業しても上手くいかなかった場合は、CakePHPのバージョンが違うか、XAMPPのMySQLを起動しているか等確認してみてください。
一応今回のプロジェクトのソースコードを貼っておきます。
もっと良い方法があるなどありましたら、優しく教えていただけると嬉しく思います。
次回はCakePHPの、入れ子データベースについて書きます!
↓興味がありましたらチェックしてみてください!
【初心者】CakePHP3の入れ子データベースの作成