Understand how to adjust and customize the WordPress configuration file for your Pantheon WordPress site.
Contributors: Mason James
WordPress configuration is set in wp-config.php, located within your WordPress site root. When you install a WordPress site, we automatically include this file for you with all the boilerplate you need to get started. Most users will not need to customize this file.
Pantheon uses environment variables to automatically supply configuration settings (e.g. Database credentials) dynamically to wp-config.php - no editing required. However, you are welcome to customize wp-config.php with any customizations you may need for plugins, themes, and caching.
You should NEVER put the database connection information for a Pantheon database within your
wp-config.php. These credentials will change. If you are having connection errors, please ensure you are running the latest version of WordPress core and have the correct
wp-config.php file for Pantheon.
Local Database Configuration for Development
If you are also developing locally and need to configure WordPress for your desktop environment, we recommend you create a wp-config-local.php file. This will be ignored by Pantheon and should not be tracked by version control by default since it's in the .gitignore file.
Pantheon's WordPress Config
$_SERVER['SERVER_NAME'] should not be used to set
WP_SITEURL. For more information, see SERVER_NAME and SERVER_PORT on Pantheon.
Frequently Asked Questions
How can I write logic based on the Pantheon server environment?
Depending on your use case, there are two possibilities.
For web only actions, like redirects, check for the existence of
$_ENV['PANTHEON_ENVIRONMENT']. If it exists, it will contain a string with the current environment (Dev, Test, or Live).
For actions that should take place on both web requests and wp-cli commands (e,g, Redis cache configuration), use the constant
PANTHEON_ENVIRONMENT. Again, it will contain Dev, Test, or Live.
As an example, here's how you can hard-code your WordPress debug configuration based on the environment. To learn more, see Defining variables in a wp-config.php.
How can I read the Pantheon environmental configuration, like database credentials?
How do I perform redirection?
See Configure Redirects.
Where do I specify database credentials?
You don't have to! Pantheon automatically injects database credentials into the site environment; if you hard code database credentials, you will break the Pantheon workflow.
Where can I get a copy of a default wp-config.php for Pantheon?
- Pantheon WordPress - https://github.com/pantheon-systems/WordPress/blob/master/wp-config.php
- WordPress Core - https://github.com/WordPress/WordPress/blob/master/wp-config-sample.php
Where can I find examples of Pantheon wp-config.php?
You can view examples at the pantheon-settings-examples repo.
Request to a Remote API Does Not Return Expected Response
The PHP 5.5 default is
& and the PHP 5.3 default is
If the API expects
& as an argument separator but receives
& (for example, when using http_build_query), you can override the default arg_separator.ouput value by adding the following line to