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
ありがとうございました