2012-02-15 52 views
2

我使用phpfog.com進行託管和github.com進行問題跟蹤等。 我有兩個遠程設置,一個用於phpfog.com,另一個用於github。在Wordpress中使用環境變量wp-config

在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); 
/** ------------------------------------=-----*/ 

必須有這樣做的更清潔的方式...

更新! 這裏的清理代碼感謝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)); 
} 
+0

此代碼的任何問題? – zerkms 2012-02-15 20:39:39

+0

不,只是忘了接受答案...謝謝! – 2012-02-16 02:45:56

+0

我之前詢問過*的問題*我給出了我的答案;-) – zerkms 2012-02-16 02:51:53

回答

5

你可以把它兩次短傳遞函數的結果,沒有中間變量恆定值:

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

或者做一個循環:

$vars = array('AUTH_KEY', 'SECURE_AUTH_KEY', ...); 
foreach ($vars as $var) { 
    define($var, getenv($var)); 
} 
+0

啊,很好......這是我錯過的語法 – 2012-02-15 21:52:49

+0

在循環中定義常量時,您將失去IDE支持 – Okneloper 2017-03-22 17:49:45

1

我更喜歡用下面的方法:

<?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); 
} 

?> 

原始要點:https://gist.github.com/oscaralencar/17e98e84012e9d11311fea10ff7eda3a

+2

重要鏈接已損壞,請修復它 – Vardius 2017-02-27 00:42:37

+0

鏈接isn破壞了,你只需要刪除最後一個] – 2017-11-23 08:34:52