summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/general/environments.rst
diff options
context:
space:
mode:
Diffstat (limited to 'user_guide_src/source/general/environments.rst')
-rw-r--r--user_guide_src/source/general/environments.rst52
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.