初期設定

Posted by muchag | CakePHP 3.x | 2017-12-10 (日) 23:20:05

【環境】
CakePHP: 3.5.6
php: 7.1.5
app.php
/config/app.php
ローカライズ

App 項目の defaultLocale を ja_JP とする。


'App' => [
    'namespace' => 'App',
    'encoding' => env('APP_ENCODING', 'UTF-8'),
    'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'),
    'base' => false,
    'dir' => 'src',
    'webroot' => 'webroot',
    'wwwRoot' => WWW_ROOT,
    // 'baseUrl' => env('SCRIPT_NAME'),
    'fullBaseUrl' => false,
    'imageBaseUrl' => 'img/',
    'cssBaseUrl' => 'css/',
    'jsBaseUrl' => 'js/',
    'paths' => [
        'plugins' => [ROOT . DS . 'plugins' . DS],
        'templates' => [APP . 'Template' . DS],
        'locales' => [APP . 'Locale' . DS],
    ],
],
DB

DB 周りの設定。

  • host
  • usernama:MySQL のユーザ名
  • password:MySQL パスワード
  • database:当該アプリデータベース名(テスト用は、test_ プレフィクスを付ける)
  • timezone:Asia/Tokyo

'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' => 'non_standard_port_number',
        'username' => 'my_app',
        'password' => 'secret',
        'database' => 'test_myapp',
        'encoding' => 'utf8',
        'timezone' => 'UTC',

    'test' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'localhost',
        //'port' => 'non_standard_port_number',
        'username' => 'my_app',
        'password' => 'secret',
        'database' => 'test_myapp',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
タイムゾーンエラー

タイムゾーンに Asia/Tokyo を設定したら
苦労して辿り着いた CakePHP3 のTOPページが姿を消し
エラーの画面になった。 X-P

SQLSTATE[HY000]: General error: 1298 Unknown or incorrect time zone: ‘Asia/Tokyo’

そして、MySQL への対応。
タイムゾーン

bootstrap.php
タイムゾーン

- date_default_timezone_set('UTC');
+ date_default_timezone_set('Asia/Tokyo');
.htaccess

アプリケーションディレクトリに phpMyAdmin を配置するとき
こちらも CakePHP のルーティング対象となってしまうため
ルーティングルールから除外する必要が生じる。


<IfModule mod_rewrite.c>
    RewriteEngine on    
+   RewriteCond   %{REQUEST_URI} !(^/pma/)
    RewriteRule   ^$    webroot/    [L]
+   RewriteCond   %{REQUEST_URI} !(^/pma/)
    RewriteRule   (.*) webroot/$1    [L]
</IfModule>

除外ルールは、各リライトルールに対して設定する必要があるため
同じ内容を2回記述する必要がある。

参考サイト

Step On Board:RewriteCondが効かない?特定のディレクトリを除外する方法でつまずいたお話(2015-05-13)

CakePHP 3.x | 2017-12-10 (日) 23:20:05 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment