2017-12-31 81 views
0

Azure를 사용하여 코드를 배포하므로 중요한 변수 (예 : client_id 및 client_secrets)를 저장하기 위해 서버 변수를 사용하고 있습니다.내장 된 웹 서버를 사용하여 PHP에서 Windows의 환경 변수를 읽는 방법?

$_SERVER['APPSETTING_Imgur_Client_Id'];

Set Azure Application Environment variables

Azure $_SERVER

내가 (직접 창에) ENVIRONNEMENT 변수를 설정하여, 내 개발 ENVIRONNEMENT (윈도우)에서 같은 mecanism를 사용하여 내 응용 프로그램에서 사용하고 싶습니다 .

그래서 내가 정의한 2 개 윈도우 변수 (system properties->Environment Variables->User Variables) :

Set Windows's Evironment variables

을하지만 양태에서는 변수 $_SERVER['APPSETTING_Imgur_Client_Id']; (cmd를 php -S [::]:80 index.php 포함)을 통해 사용할 수 없습니다. 기본 $ _SERVER 변수 만 있습니다.

그래서 askying 해요 :

  • 어떻게 PHP와 양태에서는 윈도우의 evironment 변수를 읽어?

  • PHP 응용 프로그램 코드를 사용하지 않고 사용자 정의 $ _SERVER 변수를 추가하는 방법을 사용할 수없는 경우.

    PHP 7.1.10 
    & 
    Windows Server 2016 
    

    나는 (지금 System variables에서) 변수의 위치를 ​​변경하고 컴퓨터를 다시 시작 :


내가 사용하고 있습니다.

하지만 그 후에는 getenv('APPSETTING_Imgur_Client_Id'') 또는 $_SERVER으로 내 맞춤 변수에 액세스 할 수 없습니다.

는하지만 내 코드를 편집하려면 명령 줄 php -r 'var_export($_SERVER);'로 내 변수

을 볼 수 있습니다, 나는 REPO를 복제하고 php -S [::]:80 index.php과 로컬 디렉토리에서 웹 서버를 실행합니다. php -S 명령이 Windows 환경을 통과하지 못하는 경우가 있습니다.

감사합니다.

편집 : 솔루션 : getenv 페이지의 사진 아래

사용 :

Postman sample, with both user env and system env

+0

@NineBerry 응답이 정확합니다. 'getenv ('somevar ')'는 작동하지 않으며 $ _SERVER ['somevar ']가 아닙니다. . 이전 질문으로 롤백해야합니까? 아니면 답변을 게시해야합니까? 고마워. – user8738918

답변

0

사용 getenv 기능. system properties->Environment Variables->User Variables에 설정된 변수는 웹 서버가 다른 사용자 계정으로 실행하면 웹 서버에 의해 보일 수 없다는 것을 http://php.net/manual/en/function.getenv.php

주에서

문서.system properties->Environment Variables-> System Variables을 통해 변수를 설정해야합니다 (웹 서버를 다시 시작하여 사용 가능하도록 설정해야합니다).

+0

나는 (지금은'시스템 변수들 '에서) 변수의 위치를 ​​변경하고 내 컴퓨터를 재시작했다. 그런데'getenv ('APPSETTING_Imgur_Client_Id' ')'또는'$ _SERVER'을 사용하더라도 사용자 정의 변수에 액세스 할 수 없습니다. 편집 : 그러나 명령 행'php -r 'var_export ($ _ SERVER);''내 변수를 볼 수 있습니다 – user8738918

+0

@ user8738918 PHP 코드 테스트를위한 설정은 정확히 무엇입니까? – NineBerry

+0

코드를 편집하려면 repo를 복제하고'php -S [::] : 80 index.php'라는 로컬 디렉토리에서 웹 서버를 실행하십시오. 그래서 나는 php7과 windows 서버 2016 (10.0.14393)을 가지고있다. 'php -S' 명령이 Windows 환경을 통과시키지 않는 경우가 있습니다. – user8738918