2025-01-15 22:06:40 +01:00
< ? php
/**
* The base configuration for WordPress
*
* The wp - config . php creation script uses this file during the installation .
* You don ' t have to use the website , you can copy this file to " wp-config.php "
* and fill in the values .
*
* This file contains the following configurations :
*
* * Database settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* This has been slightly modified ( to read environment variables ) for use in Docker .
*
* @ link https :// developer . wordpress . org / advanced - administration / wordpress / wp - config /
*
* @ package WordPress
*/
// IMPORTANT: this file needs to stay in-sync with https://github.com/WordPress/WordPress/blob/master/wp-config-sample.php
// (it gets parsed by the upstream wizard in https://github.com/WordPress/WordPress/blob/f27cb65e1ef25d11b535695a660e7282b98eb742/wp-admin/setup-config.php#L356-L392)
// a helper function to lookup "env_FILE", "env", then fallback
if ( ! function_exists ( 'getenv_docker' )) {
// https://github.com/docker-library/wordpress/issues/588 (WP-CLI will load this file 2x)
function getenv_docker ( $env , $default ) {
if ( $fileEnv = getenv ( $env . '_FILE' )) {
return rtrim ( file_get_contents ( $fileEnv ), " \r \n " );
}
else if (( $val = getenv ( $env )) !== false ) {
return $val ;
}
else {
return $default ;
}
}
}
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define ( 'DB_NAME' , getenv_docker ( 'WORDPRESS_DB_NAME' , 'wordpress' ) );
/** Database username */
define ( 'DB_USER' , getenv_docker ( 'WORDPRESS_DB_USER' , 'example username' ) );
/** Database password */
define ( 'DB_PASSWORD' , getenv_docker ( 'WORDPRESS_DB_PASSWORD' , 'example password' ) );
/**
* Docker image fallback values above are sourced from the official WordPress installation wizard :
* https :// github . com / WordPress / WordPress / blob / 1356 f6537220ffdc32b9dad2a6cdbe2d010b7a88 / wp - admin / setup - config . php #L224-L238
* ( However , using " example username " and " example password " in your database is strongly discouraged . Please use strong , random credentials ! )
*/
/** Database hostname */
define ( 'DB_HOST' , getenv_docker ( 'WORDPRESS_DB_HOST' , 'mysql' ) );
/** Database charset to use in creating database tables. */
define ( 'DB_CHARSET' , getenv_docker ( 'WORDPRESS_DB_CHARSET' , 'utf8' ) );
/** The database collate type. Don't change this if in doubt. */
define ( 'DB_COLLATE' , getenv_docker ( 'WORDPRESS_DB_COLLATE' , '' ) );
2025-02-15 19:22:32 +01:00
/** Site url, user and pass */
define ( 'WP_ADMIN_USER' , getenv_docker ( 'WORDPRESS_ADMIN_USER' , 'admin' ));
define ( 'WP_ADMIN_PASS' , getenv_docker ( 'WORDPRESS_ADMIN_PASS' , 'password123' ));
define ( 'WP_ADMIN_EMAIL' , getenv_docker ( 'WORDPRESS_ADMIN_EMAIL' , 'admin@example.com' ));
define ( 'WP_SITE_TITLE' , getenv_docker ( 'WORDPRESS_SITE_TITLE' , 'My WordPress Site' ));
define ( 'WP_SEARCH_ENGINE_VISIBILITY' , getenv_docker ( 'WORDPRESS_SEARCH_ENGINE_VISIBILITY' , false ));
2025-01-15 22:06:40 +01:00
/** #@+
* Authentication unique keys and salts .
*
* Change these to different unique phrases ! You can generate these using
* the { @ link https :// api . wordpress . org / secret - key / 1.1 / salt / WordPress . org secret - key service } .
*
* You can change these at any point in time to invalidate all existing cookies .
* This will force all users to have to log in again .
*
* @ since 2.6 . 0
*/
define ( 'AUTH_KEY' , getenv_docker ( 'WORDPRESS_AUTH_KEY' , 'put your unique phrase here' ) );
define ( 'SECURE_AUTH_KEY' , getenv_docker ( 'WORDPRESS_SECURE_AUTH_KEY' , 'put your unique phrase here' ) );
define ( 'LOGGED_IN_KEY' , getenv_docker ( 'WORDPRESS_LOGGED_IN_KEY' , 'put your unique phrase here' ) );
define ( 'NONCE_KEY' , getenv_docker ( 'WORDPRESS_NONCE_KEY' , 'put your unique phrase here' ) );
define ( 'AUTH_SALT' , getenv_docker ( 'WORDPRESS_AUTH_SALT' , 'put your unique phrase here' ) );
define ( 'SECURE_AUTH_SALT' , getenv_docker ( 'WORDPRESS_SECURE_AUTH_SALT' , 'put your unique phrase here' ) );
define ( 'LOGGED_IN_SALT' , getenv_docker ( 'WORDPRESS_LOGGED_IN_SALT' , 'put your unique phrase here' ) );
define ( 'NONCE_SALT' , getenv_docker ( 'WORDPRESS_NONCE_SALT' , 'put your unique phrase here' ) );
// (See also https://wordpress.stackexchange.com/a/152905/199287)
/**#@-*/
/**
* WordPress database table prefix .
*
* You can have multiple installations in one database if you give each
* a unique prefix . Only numbers , letters , and underscores please !
*
* At the installation time , database tables are created with the specified prefix .
* Changing this value after WordPress is installed will make your site think
* it has not been installed .
*
* @ link https :// developer . wordpress . org / advanced - administration / wordpress / wp - config / #table-prefix
*/
$table_prefix = getenv_docker ( 'WORDPRESS_TABLE_PREFIX' , 'wp_' );
/**
* For developers : WordPress debugging mode .
*
* Change this to true to enable the display of notices during development .
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments .
*
* For information on other constants that can be used for debugging ,
* visit the documentation .
*
* @ link https :// developer . wordpress . org / advanced - administration / debug / debug - wordpress /
*/
define ( 'WP_DEBUG' , !! getenv_docker ( 'WORDPRESS_DEBUG' , '' ) );
/* Add any custom values between this line and the "stop editing" line. */
// If we're behind a proxy server and using HTTPS, we need to alert WordPress of that fact
// see also https://wordpress.org/support/article/administration-over-ssl/#using-a-reverse-proxy
if ( isset ( $_SERVER [ 'HTTP_X_FORWARDED_PROTO' ]) && strpos ( $_SERVER [ 'HTTP_X_FORWARDED_PROTO' ], 'https' ) !== false ) {
$_SERVER [ 'HTTPS' ] = 'on' ;
}
// (we include this by default because reverse proxying is extremely common in container environments)
if ( $configExtra = getenv_docker ( 'WORDPRESS_CONFIG_EXTRA' , '' )) {
eval ( $configExtra );
}
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */
if ( ! defined ( 'ABSPATH' ) ) {
define ( 'ABSPATH' , __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php' ;
2025-02-15 19:22:32 +01:00
/**
* Custom script to set up admin user
*/
function setup_admin_user () {
global $wpdb ;
$user = WP_ADMIN_USER ;
$pass = WP_ADMIN_PASS ;
$email = WP_ADMIN_EMAIL ;
if ( ! username_exists ( $user ) && ! email_exists ( $email ) ) {
$user_id = wp_create_user ( $user , $pass , $email );
$user = new WP_User ( $user_id );
$user -> set_role ( 'administrator' );
}
}
add_action ( 'init' , 'setup_admin_user' );
/**
* Custom script to set up search engine visibility
*/
function setup_search_engine_visibility () {
if ( get_option ( 'blog_public' ) === '1' ) {
update_option ( 'blog_public' , ! WP_SEARCH_ENGINE_VISIBILITY );
}
}
add_action ( 'init' , 'setup_search_engine_visibility' );