RitoLabo

【入門】CakePHP3をインストール後に行っておくべき初期設定

  • 公開:
  • 更新:
  • カテゴリ: PHP CakePHP
  • タグ: PHP,install,Beginner,CakePHP

CakePHP3をインストール後、最初に行っておくと良い初期設定をここに記します。

尚、このページはこれからも更新していきます。

アジェンダ
  1. 検証環境
  2. タイムゾーンの設定
  3. Dotenvの有効化
    1. .envの作成
    2. 環境変数の設定
    3. Dotenvを有効化する
  4. データベースへの接続
    1. envファイルへの設定
    2. データベース接続設定の変更

検証環境

  • 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&quoteIdentifiers=false&persistent=false
#export DATABASE_TEST_URL=mysql://my_app:secret@localhost/test_${APP_NAME}?encoding=utf8&timezone=UTC&cacheMetadata=true&quoteIdentifiers=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_SALT
salt値を記述します。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.」と表示されていれば接続成功です。

CakePHP3初期画面