CakePHP3.xのインストール後のセットアップ手順

cakephp

私の愛しいアップルパイへ

先日、CakePHP 3.xのインストール手順についてお話しました。

今日はインストール後のセットアップ手順についてお話しましょう。

CakePHP3.xのインストール後のセットアップ手順

セットアップといっても、CakePHP 3.xからはかなり手順が簡略化されました。Composer経由のインストールになったことで、今まで手動でセットアップしていたことが自動化されたからです。

データベース接続設定

セットアップといっても基本的にはapp.phpの中でデータベースへの接続情報を記入するだけで、CakePHPが動作するようになるはずです。

▼/configフォルダに移動して、ファイル一覧を見てみてください。app.phpが自動作成されていることを確認します。

app.default.php
app.php
bootstrap.php
bootstrap_cli.php
paths.php
routes.php
schema

▼app.phpを開いてデータベース接続をセットアップします。以下のハイライトされている箇所を修正してみてください。

    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            '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' => 'nonstandard_port_number',
            'username' => 'my_app', // データベースへ接続するユーザー名
            'password' => 'secret', // データベースへ接続するパスワード
            'database' => 'my_app', // 使用するデータベース名
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,

            /**
             * Set identifier quoting to true if you are using reserved words or
             * special characters in your table or column names. Enabling this
             * setting will result in queries built using the Query Builder having
             * identifiers quoted when creating SQL. It should be noted that this
             * decreases performance because each query needs to be traversed and
             * manipulated before being executed.
             */
            'quoteIdentifiers' => false,

            /**
             * During development, if using MySQL < 5.6, uncommenting the
             * following line could boost the speed at which schema metadata is
             * fetched from the database. It can also be set directly with the
             * mysql configuration directive 'innodb_stats_on_metadata = 0'
             * which is the recommended value in production environments
             */
            //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
            'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock' // MAMPやXAMMPを使っているときなどで、Socketが見つからないというエラーが発生する場合はこの行を追加する。パスは自分のmysql.sockへのパスを入力すること
        ],

        /**
         * The test connection is used during the test suite.
         */
        'test' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            //'port' => 'nonstandard_port_number',
            'username' => 'my_app', // データベースへ接続するユーザー名(Unitテスト用)
            'password' => 'secret', // データベースへ接続するパスワード(Unitテスト用)
            'database' => 'test_myapp', // 使用するデータベース名(Unitテスト用、defaultとは別のテーブルを作ること)
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,
            'quoteIdentifiers' => false,
            //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
            'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock' // MAMPやXAMMPを使っているときなどで、Socketが見つからないというエラーが発生する場合はこの行を追加する。パスは自分のmysql.sockへのパスを入力すること
        ],
    ],
bake実行時など、以下のようなエラーが発生する場合はsocketが見つかってないときなので、38行目、58行目のようにsokectの場所を指定します。 Warning: mysql_connect(): Can’t connect to local MySQL server through socket
上記例ではtestというデータソースも指定しています。これはPHPUnitを使う場合に使用するデータベース接続となります。PHPUnitを使わないという場合にはtest配列の中は変更不要です。
app.phpが存在しない場合や、他にもディレクトリのパーミッションについてエラーがでる場合、autoload.phpが無くてエラーが出る場合はインストールに失敗していますので、以下の記事を参考に再インストールをオススメします。

タイムゾーンの修正

あと、デフォルトだとタイムゾーンがUTCになっているので、日本時刻に変えたい場合にはbootstrap.phpを修正します。

/**
 * Set server timezone to UTC. You can change it to another timezone of your
 * choice but using UTC makes time calculations / conversions easier.
 */
date_default_timezone_set('Asia/Tokyo');

これでCakePHPのセットアップが完了しました。簡単!

貴下の従順なる下僕 松崎より

著者画像

システム系の専門学校を卒業後、システム屋として6年半の会社員生活を経て独立。ブログ「jMatsuzaki」を通して、小学生のころからの夢であった音楽家へ至るまでの全プロセスを公開することで、のっぴきならない現実を乗り越えて、諦めきれない夢に向かう生き方を伝えている。