Set Application_ENV via virtual host config and read this in PHP Set Application_ENV via virtual host config and read this in PHP php php

Set Application_ENV via virtual host config and read this in PHP


Since SetEnv set's the value to Apache's environment, you can get it with

or just

  • getenv — Gets the value of an environment variable

If you look at public/index.php in a ZF project, you will see ZF uses getenv:

// Define application environmentdefined('APPLICATION_ENV')    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ?                                   getenv('APPLICATION_ENV') :                                   'production'));

An often use alternative would be to read the Hostname from PHP and define the constant accordingly:

if(!defined('APPLICATION_ENV')) {    if(FALSE === stripos($_SERVER['SERVER_NAME'], 'www.yourdomain.com')) {        define(APPLICATION_ENV, 'development');    } else {        define(APPLICATION_ENV, 'production');    }}

This way, you don't have to rely on the environment setting at all.


SetEnv defines an environment variable.

Once this has been set (either in your Apache's configuration, or at the system level), you can read its value using the getenv function :

echo getenv('APPLICATION_ENV');


For instance, if you use this in your .htaccess file :

SetEnv TEST glop

You can use this portion of PHP code :

var_dump(getenv('TEST'));

And you'll get :

string 'glop' (length=4)


you can also access it from the $_SERVER variable.