先日ちょっと躓いたCakePHPの動作環境の切り替えの方法について書いておこっと。
あー。言っておきますが初歩的な事もさも新発見のように言ってしまう人なので過度な期待は禁物ですw
一応環境を書いておきます。
ローカル環境
- XAMPP 3.1.0
- CakePHP 2.4.3
本番環境
ローカルの環境と本番の環境でいちいち環境の設定を切り替えるのって不便だよなーって思って調べてみるとホスト名で切り替える方法と環境変数で切り替える方法があるようです。
んで環境変数の方法はApacheの設定を変更できる権限が必要のようです。
ロリポップレンタルサーバーは.htaccessでしか制御が出来ないようなのでホスト名で切り替える方法でやってみることにします。
$_SERVER[‘SERVER_NAME’]を使って切り替える方法です。※
ここのブログならkasakon555.main.jpという値が取得できます。
これを使って切り替えるということですね。納得ですの。
CakePHPでは appConfigdatabase.phpでデータベースの設定を行っているので以下のように変更してみた。
[php]
//ローカル環境
public $development = array(
‘datasource’ => ‘Database/Mysql’,
‘persistent’ => false,
‘host’ => ‘ローカル環境’,
‘login’ => ‘ローカル環境’,
‘password’ => ‘ローカル環境’,
‘database’ => ‘ローカル環境’,
‘prefix’ => ”,
‘encoding’ => ‘utf8’,
);
//本番環境
public $production = array(
‘datasource’ => ‘Database/Mysql’,
‘persistent’ => false,
‘host’ => ‘本番環境’,
‘login’ => ‘本番環境’,
‘password’ => ‘本番環境’,
‘database’ => ‘本番環境’,
‘prefix’ => ”,
‘encoding’ => ‘utf8’,
);
//コンストラクタで環境を切り替える
public function __construct(){
if($_SERVER[‘SERVER_NAME’] === ‘kasakon555.main.jp’){
$this->default = $this->production;
}else{
$this->default = $this->development;
}
}
[/php]
まず最初に実行される__construct()を使っているのが味噌?
そして確かめる。
おぉ。問題なく見れる!
良い勉強になった。