CodeIgniterで小規模なシステムの開発を始めました。
本番環境とは別にテスト環境としても利用する開発環境を構築することにしましたが、接続先データベースなどが異なるので設定の切り分けをしなければなりません。
色々調べてやったことを書いておきます。
1.ディレクトリを分ける
流れとしては下記の通りです。
- “application/config”の中に”development”と”production”というディレクトリを作成。
- “application/config/database.php”を作成したそれぞれのディレクトリ内へコピー。
- 開発環境・本番環境で接続するDB情報をそれぞれのdatabase.phpに書く。
application/config/development/database.php
$db['development'] = array(
'dsn' => '',
'hostname' => 'localhost',
:
application/config/production/database.php
$db['production'] = array(
'dsn' => '',
'hostname' => 'localhost',
:
2.htaccessで環境変数を設定
index.phpの中を確認すると
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
という記述があり、CI_ENVという環境変数があれば、それを設定するようになっています。
この環境変数を設定する為の.htaccessを作成し、それぞれの環境のアプリケーションディレクトリのルート(index.phpがある場所)へ転送します。
開発環境用”.htaccess”
SetEnv CI_ENV development
本番環境用".htaccess"
SetEnv CI_ENV production
試していませんが、環境変数ではなくドメインでの判別にするというのもありかもしれません。.htaccessを作る分だけ楽に出来ますね。