diff options
author | dchill42 <dchill42@gmail.com> | 2012-07-23 16:53:47 +0200 |
---|---|---|
committer | dchill42 <dchill42@gmail.com> | 2012-07-23 16:53:47 +0200 |
commit | c5079de78e5141330c07e990811ef15e998e95aa (patch) | |
tree | 0f39d8c4fc7614246fc185810bfeaa7fad88a33a /user_guide_src/source/general/environments.rst | |
parent | 00fcb545109d4e61bc14e403ec828749c34a54b3 (diff) | |
parent | ede49ba66b127535f3430e20aac72ceed2c4611a (diff) |
Merge branch develop of github.com:/EllisLab/CodeIgniter into session
Diffstat (limited to 'user_guide_src/source/general/environments.rst')
-rw-r--r-- | user_guide_src/source/general/environments.rst | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/user_guide_src/source/general/environments.rst b/user_guide_src/source/general/environments.rst new file mode 100644 index 000000000..fa1b096e2 --- /dev/null +++ b/user_guide_src/source/general/environments.rst @@ -0,0 +1,52 @@ +############################## +Handling Multiple Environments +############################## + +Developers often desire different system behavior depending on whether +an application is running in a development or production environment. +For example, verbose error output is something that would be useful +while developing an application, but it may also pose a security issue +when "live". + +The ENVIRONMENT Constant +======================== + +By default, CodeIgniter comes with the environment constant set to use +the value provided in ``$_SERVER['CI_ENV']``, otherwise defaults to +'development'. At the top of index.php, you will see:: + + define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development'); + +This server variable can be set in your .htaccess file, or Apache +config using `SetEnv <https://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv>`_. +Alternative methods are available for nginx and other servers, or you can +remove this logic entirely and set the constant based on the HTTP_HOST or IP. + +In addition to affecting some basic framework behavior (see the next +section), you may use this constant in your own development to +differentiate between which environment you are running in. + +Effects On Default Framework Behavior +===================================== + +There are some places in the CodeIgniter system where the ENVIRONMENT +constant is used. This section describes how default framework behavior +is affected. + +Error Reporting +--------------- + +Setting the ENVIRONMENT constant to a value of 'development' will cause +all PHP errors to be rendered to the browser when they occur. +Conversely, setting the constant to 'production' will disable all error +output. Disabling error reporting in production is a :doc:`good security +practice <security>`. + +Configuration Files +------------------- + +Optionally, you can have CodeIgniter load environment-specific +configuration files. This may be useful for managing things like +differing API keys across multiple environments. This is described in +more detail in the environment section of the `Config +Class <../libraries/config.html#environments>`_ documentation. |