cakephp3でデプロイ環境先毎にDB接続先を切り替えたい場合
環境毎にWebサーバに記述して再起動しておく
apache の場合
$ vi /etc/httpd/conf/httpd.conf SetEnv CAKEPHP_ENV app_prod #SetEnv CAKEPHP_ENV app_stg #SetEnv CAKEPHP_ENV app_dev
nginxの場合
#fastcgi_param EXTRA_PARAMETER app_prod; #fastcgi_param EXTRA_PARAMETER app_stg; fastcgi_param EXTRA_PARAMETER app_dev;
bootstrapファイルを編集する
$ vi config/bootstrap.php
try {
Configure::config('default', new PhpConfig());
//Configure::load('app', 'default', false);
switch (env('CAKEPHP_ENV')) {
case 'prod':
Configure::load('env/app_prod', 'default', false);
break;
case 'stg':
Configure::load('env/app_srg', 'default', false);
break;
case 'dev':
Configure::load('env/app_dev', 'default', false);
break;
default:
Configure::load('app', 'default', false); // local
}
} catch (\Exception $e) {
exit($e->getMessage() . "\n");
}
設定ファイルをapp.phpからコピーする
$ mkdir config/env $ cp config/app.php config/env/app_prod.php $ cp config/app.php config/env/app_stg.php $ cp config/app.php config/env/app_dev.php
接続先等を適宜編集する
$ vi config/env/app_prod.php $ vi config/env/app_stg.php $ vi config/env/app_dev.php
参考
http://easyramble.com/switch-environment-with-cakephp.html
http://easyramble.com/switch-cakephp-env.html
ありがとうございました