株式会社プロネット

 

WEBシステム開発、ITコンサルティング、自社サービス、教育事業 - これからのビジネスへのIT活用ソリューションをご提案致します。

CakePHPでサーバーによって設定を切り替える

2017.4.20(Thu) 21:10 | CakePHP | yamamoto

今回は実行するサーバーによって設定内容を切り替える方法をご紹介します。

1. Apacheのconfを変更

confのvirtualhostに「SetEnv CAKE_ENV hoge」と記述します。

hogeは「develop」や「production」など環境名を記述します。

cloud9の場合は「/etc/apache2/sites-enabled/001-cloud9.conf」に記述します。

<virtualhost *:80>
    ...
    SetEnv CAKE_ENV production
    ...
</virtualhost>

 

2. CakePHPで使用

PHPで「 env('CAKE_ENV') 」 と記述すれば環境名を取得することができます。

bootstrap.phpで以下のように記述すれば本番環境ではデバッグモード0となります。

if(env('CAKE_ENV') == 'production'){
    Configure::write('debug', 0);
}

 

また以下のように記述すればデータベースの設定を環境ごとに切り替えることができます。

$env = env('CAKE_ENV');
if($env == 'production'){
require_once 'database_confs' .DS. 'product.php';
}

 

ただし、今回の設定方法ではcommandの方は未対応です。

command を使用する場合は、別の方法を考えないと行けないです。