【入門】CakePHP3をインストール後に行っておくべき初期設定
- 公開日
- 更新日
- カテゴリ:CakePHP
- タグ:PHP,install,Beginner,CakePHP
CakePHP3 をインストール後、最初に行っておくと良い初期設定をここに記します。
尚、このページはこれからも更新していきます。
Contents
検証環境
- linux CentOS 7
- Apache 2.4
- PHP 7.1
- MySQL 5.7
- CakePHP 3.5
CakePHP のルートディレクトリを「cakephp/」とします。
タイムゾーンの設定
時間を日本時間に設定します。
設定ファイル app.php の 236行目あたり。「Datasources 」の、「default 」の中の「timezone 」を「UTC 」から「+09:00 」へ変更します。
- cakephp/config/app.php
-
'Datasources' => [ 'default' => [ // 'timezone' => 'UTC', 'timezone' => '+09:00', ],
bootstrap.php の 96行目あたり。「date_default_timezone_set 」を「UTC 」から「Asia/Tokyo 」へ変更します。
- cakephp/config/bootstrap.php
-
// date_default_timezone_set('UTC'); date_default_timezone_set('Asia/Tokyo');
Dotenv の有効化
環境変数を env ファイルで管理できるように設定します。
.env の作成
cakephp/config/.env.default をコピーし、.env へリネームします。
cakephp
├─ config
| ├─ .env.default // ①このファイルをコピー
| ├─ .env // ②コピーしたファイルをリネーム
環境変数の設定
作成した.env に設定を記述します。
#!/usr/bin/env bash
# Used as a default to seed config/.env which
# enables you to use environment variables to configure
# the aspects of your application that vary by
# environment.
#
# To use this file, first copy it into `config/.env`. Also ensure the related
# code block for loading this file is uncommented in `config/boostrap.php`
#
# In development .env files are parsed by PHP
# and set into the environment. This provides a simpler
# development workflow over standard environment variables.
#export APP_NAME=__APP_NAME__
export APP_NAME=MY_APP
export DEBUG=true
export APP_ENCODING=UTF-8
#export APP_DEFAULT_LOCALE=en_US
export APP_DEFAULT_LOCALE=ja_JP
#export SECURITY_SALT=__SALT__
export SECURITY_SALT=039448d2d0e265c5a21fcdc3dn40ce2ba98cpx1a2c609e308c84419fbc4da9d2
# Uncomment these to define cache configuration via environment variables.
#export CACHE_DURATION=+2 minutes
#export CACHE_DEFAULT_URL=file://tmp/cache/?prefix=${APP_NAME}_default&duration=${CACHE_DURATION}
#export CACHE_CAKECORE_URL=file://tmp/cache/persistent?prefix=${APP_NAME}_cake_core&serialize=true&duration=${CACHE_DURATION}
#export CACHE_CAKEMODEL_URL=file://tmp/cache/models?prefix=${APP_NAME}_cake_model&serialize=true&duration=${CACHE_DURATION}
# Uncomment these to define email transport configuration via environment variables.
#export EMAIL_TRANSPORT_DEFAULT_URL=
# Uncomment these to define database configuration via environment variables.
#export DATABASE_URL=mysql://my_app:secret@localhost/${APP_NAME}?encoding=utf8&timezone=UTC&cacheMetadata=true"eIdentifiers=false&persistent=false
#export DATABASE_TEST_URL=mysql://my_app:secret@localhost/test_${APP_NAME}?encoding=utf8&timezone=UTC&cacheMetadata=true"eIdentifiers=false&persistent=false
# Uncomment these to define logging configuration via environment variables.
#export LOG_DEBUG_URL=file://logs?levels[]=notice&levels[]=info&levels[]=debug&file=debug
#export LOG_ERROR_URL=file://logs?levels[]=warning&levels[]=error&levels[]=critical&levels[]=alert&levels[]=emergency&file=error
記述を変更した箇所は以下になります。
#export APP_NAME=__APP_NAME__
export APP_NAME=MY_APP
#export APP_DEFAULT_LOCALE=en_US
export APP_DEFAULT_LOCALE=ja_JP
#export SECURITY_SALT=__SALT__
export SECURITY_SALT=039448d2d0e265c5a21fcdc3dn40ce2ba98cpx1a2c609e308c84419fbc4da9d2
- APP_NAME アプリケーションの名前を記述します。 APP_DEFAULT_LOCALE デフォルトのロケールを日本語にします。 SECURITY_SALTsalt 値を記述します。 salt 値は、cakephp/config/app.php の 67行目あたりにある値を記述します。
-
'Security' => [ 'salt' => env('SECURITY_SALT', '【ここに記述されている値が salt 値です】'), ],
salt 値
salt(ソルト)値とは、セキュリティと暗号化の設定値で、ハッシュ関数で使用されるランダムな文字列です。また、暗号化キーとしても使用されます。
ソルト値は、非常に機密性の高いデータとして扱う必要があります。
SECURITY_SALT を設定したら、app.php に記述されている salt 値は削除し空にしておきます。
'Security' => [
'salt' => env('SECURITY_SALT', ''),
],
Dotenv を有効化する
.env を読み込むように Dotenv を有効化します。
bootstrap.php の 52行目あたりにある Dotenv のコメントアウトを外すことで Dotenv が有効化され、.env が読み込まれるようになります。
- cakephp/config/bootstrap.php
-
// if (!env('APP_NAME') && file_exists(CONFIG . '.env')) { // $dotenv = new \josegonzalez\Dotenv\Loader([CONFIG . '.env']); // $dotenv->parse() // ->putenv() // ->toEnv() // ->toServer(); // } // ↓ コメントアウトを外す if (!env('APP_NAME') && file_exists(CONFIG . '.env')) { $dotenv = new \josegonzalez\Dotenv\Loader([CONFIG . '.env']); $dotenv->parse() ->putenv() ->toEnv() ->toServer(); }
データベースへの接続
CakePHP からデータベースへの接続設定を行います。今回は通常の設定ではなく、env ファイルに情報を集約する流れで行います。
env ファイルへの設定
.env へデータベースへの接続情報を記述します。
export DB_HOST=your_database_host
export DB_SCHEMA=your_database_name
export DB_USERNAME=your_username
export DB_PASSWORD=your_password
データベース接続設定の変更
データベース接続設定を、env ファイルから読み込むように変更します。
- cakephp/config/app.php
-
'Datasources' => [ 'default' => [ // 'host' => 'localhost', // 'username' => 'my_app', // 'password' => 'secret', // 'database' => 'my_app', // ↓ 'host' => env('DB_HOST', 'localhost'), 'username' => env('DB_USERNAME', ''), 'password' => env('DB_PASSWORD', ''), 'database' => env('DB_SCHEMA', ''),
最後にブラウザから初期画面へアクセスし、左側「Database 」が緑色のアイコンと共に「CakePHP is able to connect to the database.」と表示されていれば接続成功です。