Использование переменных окружения в WordPress wp-config - PullRequest
8 голосов
/ 16 февраля 2012

Я использую phpfog.com для хостинга и github.com для отслеживания проблем и т. Д. У меня есть два пульта, один для phpfog.com, а другой для github.

В задней частиКонец администратора phpfog вы можете определить переменные среды.Я сделал это там и хочу использовать их в своем файле wp-config.

Вот код, который я использовал:

/** Hardened Salts for use on github.com, phpfog.com, etc.*/
$AUTH_KEY = getenv('AUTH_KEY'); 
$SECURE_AUTH_KEY = getenv('SECURE_AUTH_KEY');
$LOGGED_IN_KEY = getenv('LOGGED_IN_KEY');
$NONCE_KEY = getenv('NONCE_KEY');
$AUTH_SALT = getenv('AUTH_SALT');
$SECURE_AUTH_SALT = getenv('SECURE_AUTH_SALT');
$LOGGED_IN_SALT = getenv('LOGGED_IN_SALT');
$NONCE_SALT = getenv('NONCE_SALT');
define('AUTH_KEY',$AUTH_KEY);
define('SECURE_AUTH_KEY',$SECURE_AUTH_KEY);
define('LOGGED_IN_KEY',$LOGGED_IN_KEY);
define('NONCE_KEY',$NONCE_KEY);
define('AUTH_SALT',$AUTH_SALT);
define('SECURE_AUTH_SALT',$SECURE_AUTH_SALT);
define('LOGGED_IN_SALT',$LOGGED_IN_SALT);
define('NONCE_SALT',$NONCE_SALT);
/** ------------------------------------=-----*/

Должен быть более чистый способ сделать это…

UPDATE!Вот очищенный код благодаря zerkms

$dbvalues = array('DB_HOST', 'DB_NAME', 'DB_USER', 'DB_PASSWORD');
/** -------------------------------------------------------------*/
foreach ($dbvalues as $dbvalue) {
    define($dbvalue, getenv($dbvalue));
}

$saltykeys = array('AUTH_KEY', 'SECURE_AUTH_KEY', 'LOGGED_IN_KEY', 'NONCE_KEY', 'AUTH_SALT', 'SECURE_AUTH_SALT' , 'LOGGED_IN_SALT', 'NONCE_SALT' );
/** -------------------------------------------------------------*/
foreach ($saltykeys as $saltykey) {
    define($saltykey, getenv($saltykey));
}

Ответы [ 2 ]

12 голосов
/ 16 февраля 2012

Вы можете сделать это в два раза короче, передав результат функции как постоянное значение без промежуточной переменной:

define('AUTH_KEY', getenv('AUTH_KEY'));

Или сделать это в цикле:

$vars = array('AUTH_KEY', 'SECURE_AUTH_KEY', ...);
foreach ($vars as $var) {
    define($var, getenv($var));
}
2 голосов
/ 27 февраля 2017

Я предпочитаю использовать этот подход ниже:

<?php

//GET HOSTNAME INFO
$hostname = $_SERVER['SERVER_NAME']; 

//VERIFY WHICH ENVIRONMENT THE APP IS RUNNING
switch ($hostname) {
    case 'development.dev':
        define('WP_ENV', 'development');
        define('WP_DEBUG', true);
        break;
    case 'staging.mywebsite.com':
        define('WP_ENV', 'staging');
        define('WP_DEBUG', true);
        break;
    case 'www.mywebsite.com':
        define('WP_ENV', 'production');
        define('WP_DEBUG', false);
        break;
    default:
        define('WP_ENV', 'production');
        define('WP_DEBUG', false);
}

?>
...