Bootstrap Variables
These variables can be set via your environment or as PHP constants in your entry scripts. Read more about how to use bootstrap variables on the configuration page.
# CRAFT_BASE_PATH
The path to the base directory that Craft will look for config/, templates/, and other directories within by default. (It is assumed to be the parent of the vendor/
folder by default.)
// Tell Craft to look for config/, templates/, etc., two levels up from here
define('CRAFT_BASE_PATH', dirname(__DIR__, 2));
# CRAFT_COMPOSER_PATH
The path to the composer.json file. (It is assumed to live within the base directory by default.)
define('CRAFT_COMPOSER_PATH', 'path/to/composer.json');
# CRAFT_CONFIG_PATH
The path to the config/ folder. (It is assumed to live within the base directory by default.)
# CRAFT_CONTENT_MIGRATIONS_PATH
The path to the migrations/ folder used to store content migrations. (It is assumed to live within the base directory by default.)
# CRAFT_CP
Dictates whether the current request should be treated as a control panel request.
// Tell Craft that this is a control panel request
define('CRAFT_CP', true);
If this isn’t defined, Craft will treat the request as a control panel request if either of these are true:
- The baseCpUrl setting is set, and the request URL begins with it (plus the cpTrigger setting, if set).
- The baseCpUrl setting is not set, and the request URI begins with the cpTrigger setting.
# CRAFT_DOTENV_PATH
Path to your project’s .env
file, including the filename. Defaults to .env
, within CRAFT_BASE_PATH.
# CRAFT_ENVIRONMENT
The environment name that multi-environment configs can reference when defining their environment-specific config arrays.
Prior to Craft 4, craftcms/craft
starter projects allowed this fall back to the default production
value, for security. Now, the starter kit comes with three .env
examples, each of which explicitly sets a CRAFT_ENVIRONMENT
.
# CRAFT_EPHEMERAL
When set to true
, Craft will skip file system permission checks and operations that are not available in an environment with ephemeral or read-only storage.
# CRAFT_LICENSE_KEY
Your Craft license key, if for some reason that must be defined by PHP rather than a license key file. (Don’t set this until you have a valid license key.)
// Tell Craft to get its license key from a `LICENSE_KEY` environment variable
define('CRAFT_LICENSE_KEY', craft\helpers\App::env('LICENSE_KEY'));
# CRAFT_LICENSE_KEY_PATH
The path that Craft should store its license key file, including its filename. (It will be stored as license.key
within your config/ folder by default.)
# CRAFT_LOG_ALLOW_LINE_BREAKS
Adjusts the default log target config to allow or disallow multi-line log statements.
# CRAFT_LOG_PHP_ERRORS
Can be set to false
to prevent Craft from setting PHP’s log_errors (opens new window) and error_log (opens new window) settings, leaving it up to whatever’s set in php.ini
.
// Don’t send PHP error logs to storage/logs/phperrors.log
define('CRAFT_LOG_PHP_ERRORS', false);
# CRAFT_SECRETS_PATH
The path to a secrets file, whose values are not loaded into the environment.
// Check the `secrets.php` file next to this script for sensitive values:
define('CRAFT_SITE', dirname(__DIR__) . 'secrets.php');
# CRAFT_SITE
The Site handle or ID that Craft should be serving from this index.php
file. (Only set this if you have a good reason to. Craft will automatically serve the correct site by inspecting the requested URL, unless this is set.)
// Show the German site
define('CRAFT_SITE', 'de');
# CRAFT_STORAGE_PATH
The path to the storage/ folder. (It is assumed to live within the base directory by default.)
Make sure you set this to a valid folder path, otherwise it will be ignored.
# CRAFT_STREAM_LOG
When set to true
, Craft will send log output to stderr
and stdout
, instead of to log files. PHP fatal errors will be sent to stderr
.
# CRAFT_TEMPLATES_PATH
The path to the templates/ folder. (It is assumed to live within the base directory by default.)
# CRAFT_TRANSLATIONS_PATH
The path to the translations/
folder. (It is assumed to live within the base directory by default.)
# CRAFT_VENDOR_PATH
The path to the vendor/ folder. (It is assumed to live 4 directories up from the bootstrap script by default.)
# CRAFT_WEB_URL
Automatically sets the @web
alias. Platforms (like DDEV) can set this to ensure Craft is pre-configured with the correct public URL.
# CRAFT_WEB_ROOT
Automatically sets the @webroot
alias, like CRAFT_WEB_URL
.