2012-02-15 6 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

+0

아니요, 죄송합니다. 답변을 수락하는 것을 잊어 버렸습니다 ... 감사합니다! –

+0

내가 전에 * 문제에 대해 물어 * 내 대답을 준 ;-) – zerkms

답변

5

에 정리 코드 덕분 당신은 두 번 짧은 중간 변수없이 일정한 값으로 함수 결과를 전달 만들 수 :

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

또는 않는 루프에서 :

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

아, 좋은 ... 그건 내가 누락 된 구문입니다 –

+0

루프에서 상수를 정의 할 때 IDE 지원을 잃을 – Okneloper

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

+0

링크 isn 마지막으로 제거해야 할 부분이 없어졌습니다. –