This document contains information about using Cloud Platform environment variables in your application.
Cloud Platform makes environment variables available for your use in both your application code and Drush commands. With these variables, you can write code that responds to the environment in which it runs. For example, you may want to run certain commands only in your Production environment, but not in the Development or Staging environments.
Additional environment variables are available for Pipelines.
Important
Applications on Cloud Platform have a special include statement in the settings.php
file
like the following example:
if (file_exists('/var/www/site-php')) {
require '/var/www/site-php/sitename/sitename-settings.inc';
}
If you use environment variables in settings.php
, you must place
references to the environment variables after the preceding include
statement, to ensure they take effect in only the desired contexts.
In addition to the environment variables provided by Cloud Platform, you can provide information to your application by creating custom environment variables in the Cloud Platform interface, or by storing private information in the file system.
Note
After changing a custom environment variable, you must start a new SSH session to see the updates to those variables.
Cloud Platform includes the following environment variables:
Variable |
Format |
Description |
Values |
---|---|---|---|
|
string |
Specifies the site name, which is also the Unix user. |
|
|
string |
Indicates a Cloud Platform environment. |
|
|
string |
Indicates whether this environment is a Production environment. |
|
|
string |
Indicates whether this environment is a non-Production environment. |
|
|
string |
The Amazon Web Services region in which the web infrastructure processing the current request is running. |
|
|
string |
The realm in which the application is running. |
|
|
string |
Specifies the environment name. |
|
|
string |
Every web request received by Cloud Platform is assigned a unique
request ID, which is set in the HTTP header |
|
|
string |
If you configure an environment to use a specific version of PHP, that version of PHP is first in the path. |
|
|
string |
The temporary directory
at |
Site Factory subscriber notes
Several examples from the preceding table require the following modifications to work with Site Factory:
The AH_SITE_ENVIRONMENT
variable includes Site Factory-specific
values for each environment, such as 01live
or 01test
.
Default domain names use
acsitefactory.com
instead of acquia-sites.com
.
.htaccess
¶You can also use environment variables in your .htaccess
file. In
the following example, we redirect HTTP requests to HTTPS only on the
production environment, and not in the development or staging
environments:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{ENV:AH_SITE_ENVIRONMENT} prod
// Site Factory may require a different value for
// %{ENV:AH_SITE_ENVIRONMENT} depending on site configuration
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
For more information, see Excluding Acquia domains and non-production environments.
During testing, you may want to force a Cloud Platform environment variable to
contain a specific value by making a change to your local settings.php
file. The following example sets the AH_SITE_ENVIRONMENT
variable to the
dev
environment:
$_ENV['AH_SITE_ENVIRONMENT'] = 'dev';
For an example of this technique’s use, see Overriding Solr index connection switching.
For example, the following statement would let you switch code based on the environment:
if (isset($_ENV['AH_SITE_ENVIRONMENT'])) {
switch ($_ENV['AH_SITE_ENVIRONMENT']) {
case 'dev':
// do something on dev
break;
case 'test':
// do something on staging
break;
case 'prod':
// do something on prod
// Site Factory may require a different value depending
// on site configuration
break;
case 'ra':
// do something on ra - necessary if a
// Remote Administration environment is present
break;
}
}
else {
// do something for a non-Acquia-hosted application
// (like a local dev install).
; }
To make Acquia Search read-only on your Development and Staging environments, so the search index doesn’t have duplicate copies of content:
// place this after the Acquia require line
if (!isset($_ENV['AH_SITE_ENVIRONMENT']) ||
'prod' != $_ENV['AH_SITE_ENVIRONMENT']) {
$conf['apachesolr_read_only'] = "1";
}
For another example, see Setting base URLs.