やきにくとくにきや

WEBサービスとイベントに夢見るエンジニアの技術メモ、チラシの裏。そして焼肉たべたい

cakephp3とnginxで開発環境と本番環境サーバのを環境変数で切り替える設定

      2017/05/12

cakephp3は前からそうだったが3になっても、開発環境と本番環境の切り替え機能が中途半端である。
nginxの設定と組み合わせて、稼働サーバごとに開発環境と本番環境の切り替えるようにしてみる。

元のソース
[php]
filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN),

[/php]

これをこう書き換える。
内容としては、サーバ側のCAKE_ENVという環境変数に合わせてdebugモードをオン・オフしているだけ。
[php]
filter_var(env('DEBUG', $debugMode), FILTER_VALIDATE_BOOLEAN),

[/php]

サーバーの環境変数で「development」か「production」を指定する。
nginxの設定にfastcgi_paramという設定を追記することで、CAKE_ENVをキーとして環境変数を渡せる。

開発環境
[shell]
server {
listen 80;
server_name hoge.kunikiya.jp;
root /path/to;
index index.php

location / {
try_files $uri $uri/ /index.php?$uri&$args;
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param CAKE_ENV development;
}
[/shell]

本番環境
[shell]
server {
listen 80;
server_name hoge.kunikiya.jp;
root /path/to;
index index.php

location / {
try_files $uri $uri/ /index.php?$uri&$args;
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param CAKE_ENV production;
}
[/shell]

おわり。

 - cakephp