デフォルトのインストールでは、index.phpに次のようになっていることがわかります。
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
なぜCI_ENV
これまですでに$_SERVER
配列?
オリバーが説明したように;これは、複数の環境の特別な使用例です。コードに到達する前に、.htaccess
を使用して開発、テスト、本番環境を分割する。これを構成するには:
<IfModule mod_env.c>
SetEnv CI_ENV development
</IfModule>
<IfModule mod_env.c>
SetEnv CI_ENV testing
</IfModule>
<IfModule mod_env.c>
SetEnv CI_ENV production
</IfModule>
手動での介入がない限り、変更されることはないと考えるのは正しいことです。これに関するドキュメントはあまりありません:
「このサーバー変数は、.htaccessファイルで設定するか、SetEnvを使用してApacheの構成で設定できます。nginxと他のサーバーで代替方法を使用するか、このロジックを完全に削除して、サーバーのIPアドレスに基づいて定数を設定できます。」
ソース: 環境定数の使用
Nginxを使用している場合に備えて、vhosts構成内に追加する必要がある構成を次に示します。
server {
location ~ \.php$ {
fastcgi_param CI_ENV production;
}
nginx構文チェックを保存して実行します(あなたが私をののしるのを避けるためだけです):
nginx -t
問題がある場合、またはパラメーターが見つからない場合は、以下の回答に従ってください: ApacheのSetEnvと同様のNginx変数?