2011-08-23 9 views
1

다른 데이터베이스 암호 등을 사용하는 환경에 따라 코드를 수정하려고합니다. 예를 들어, 내 dev 서버가 있고, 다른 개발자가 그의 개발자이고 env가 다른 설정을 가지고 있습니다.어떻게하면 WAMP 서버로 환경 변수에 액세스 할 수 있습니까?

일부 Kohana 프로젝트가 있기 때문에 환경 변수 KOHANA_ENV를 사용하여 앱 실행 위치를 결정했습니다.

문제는 내 WAMP 서버에서,이 작동하는 동안 것입니다 :

<?php echo getenv('REMOTE_ADDR'); ?> 

을,이 (반환 emptyness)하지 않습니다

<?php echo getenv('KOHANA_ENV'); ?> 

내가 명령 프롬프트에서 set을 입력 나는 이것을 본다 :

KOHANA_ENV=devbox1 

그래서 잘되어야한다.

답변

2

WAMP 아파치 서비스로 실행하도록 설정되어있는 것을 오히려 사람 실행 wampmanager.exe로 실행하지 않지만, 아마도 이것을 시도. 일반적으로 LocalService (로컬 시스템 계정)입니다.

http://support.microsoft.com/kb/821761은 상태

당신이 환경 변수를 갱신하거나 변경 한 로컬 시스템 계정으로 실행 서비스에 영향을 미치기 전에 컴퓨터를 다시 시작해야합니다 , 새로운 환경 변수를 추가합니다.

이 문제는 로컬 시스템 계정에서 실행되는 서비스가 자신의 환경을 Services.exe 프로세스에서 상속하기 때문에 발생합니다. Services.exe 프로세스는 Windows가 시작될 때 로컬 시스템 계정에 대한 환경 설정을받습니다. Services.exe 프로세스 은 Windows 메시징을 사용하지 않기 때문에 Windows가 시작된 후 에 값이 변경되었다는 메시지가 나타나면 Services.exe 프로세스가 해당 환경 설정을 업데이트하지 않습니다. 로컬 시스템 계정의 환경에 동적 변경 을 확인하도록 실행중인 서비스를 강제로 적용 할 수 없습니다.

그리고 실제로 컴퓨터가 시스템 환경 변수,이 코드에 환경 변수를 추가 한 후 다시 시작할 때 :

<?php echo getenv('YOUR_ENVIRONMENTAL_VARIABLE'); ?> 

이 예상된다 무엇을 인쇄합니다.

+0

나는이'getenv()'와'putenv()'를 시도했지만'putenv()'는 영구적으로 변수를 저장하지 않았다. 영구적 인 사용을 위해 수동으로 변수를 저장할 수있는 서버의 물리적 파일을 어떻게 찾을 수 있습니까? wamp/os를 다시 시작하면 설정이 해제되지 않습니다. (나는 dev win/wamp와 server ubunto/xamp를 필요로한다) 둘 다 필요하다. – alamnaryab

0

이 종을 울리면 ...

global $HTTP_ENV_VARS; 
echo $HTTP_ENV_VARS["KOHANA_ENV"] 
+0

아니요. 이것은 역시 아무것도 반환하지 않습니다. – Henno

관련 문제