1. Home
  2. PHP
  3. CakePHP
  4. 【入門】CakePHP3をインストール後に行っておくべき初期設定

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

  • 公開日
  • 更新日
  • カテゴリ:CakePHP
  • タグ:PHP,install,Beginner,CakePHP
【入門】CakePHP3をインストール後に行っておくべき初期設定

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

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

Contents

  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_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.」と表示されていれば接続成功です。

Author

rito

  • Backend Engineer
  • Tokyo, Japan
  • PHP 5 技術者認定上級試験 認定者
  • 統計検定 3 級