A plugin for Composer to create the WordPress configuration file which automagically defines constants from a .env file. Also includes path of Composer's autoloader in wp-config.php.
Via Composer
composer require johnpbloch/wordpress wearerequired/composer-wp-config
Copy .env.example
and save it as .env
. By default the variables are searched in a .env
file in the same directory as wp-config.php
.
_HTTP_HOST
(Used when$_SERVER['SERVER_NAME']
is not set, like WP-CLI.)DB_NAME
DB_USER
DB_PASSWORD
AUTH_KEY
SECURE_AUTH_KEY
LOGGED_IN_KEY
NONCE_KEY
AUTH_SALT
SECURE_AUTH_SALT
LOGGED_IN_SALT
NONCE_SALT
See also the list of default constants.
You can override the path(s) with the following extra in your composer.json
:
{
"extra": {
"wp-config-env-paths": [
"../",
"../configs"
]
}
}
Note that the path must be relative to the wp-config.php
file. Run composer build-wp-config
to rebuild the wp-config.php
file.
- Creates
wp-config.php
one level above the WordPress installation. - The
wp-config.php
includes the path to Composer's autoloader. - Searches for
.env
file with the help of PHP dotenv. - Defines all variables as constants unless a constant is already set.
- Defines reasonable default values for database, object cache, debug, URL, and path constants.
- Use
{{DIR}}
as placeholder in variable values to get it replaced with__DIR__
ofwp-config.php
. - Supports
URL_DEVELOPMENT
,URL_STAGING
, andURL_PRODUCTION
for WordPress Stage Switcher. Requires at least v2.1. - Supports loading
wp-config-prepend.php
before andwp-config-append.php
after the default config as part ofwp-config.php
. - Loads the WordPress plugin API early so actions and filters can be used.
If the following variables are not defined they will be assigned a default value:
Variable name | Default value |
---|---|
WP_ENV |
'development' |
WP_ENVIRONMENT_TYPE |
Value of WP_ENV |
QM_DISABLED |
true |
SAVEQUERIES |
false |
WP_DEBUG |
false |
WP_DISABLE_FATAL_ERROR_HANDLER |
Value of WP_DEBUG |
WP_DEBUG_LOG |
false |
WP_DEBUG_DISPLAY |
false |
SCRIPT_DEBUG |
false |
DISALLOW_FILE_MODS |
true |
DB_HOST |
'localhost' |
DB_CHARSET |
'utf8' |
DB_COLLATE |
'' |
$table_prefix |
'wp_' |
WP_CACHE_KEY_SALT |
Value of WP_ENV |
WP_HOME |
Based on $_SERVER['SERVER_NAME'] /_HTTP_HOST and $_SERVER['HTTPS'] |
WP_SITEURL |
Value of WP_HOME |
WP_CONTENT_FOLDER_NAME |
'content' |
WP_CONTENT_DIR |
__DIR__ . '/' . WP_CONTENT_FOLDER_NAME |
WP_CONTENT_URL |
WP_HOME . '/' . WP_CONTENT_FOLDER_NAME |
- Allow to change required variables via
composer.json
. - Allow to change variables not used as a constant via
composer.json
. - Let us know what you think is missing…