2017-12-31 61 views
0

Azureを使用してコードをデプロイするので、重要な設定(client_idやclient_secretsなど)を保存するためにサーバーの変数を使用しています。組み込みWebサーバーを使用してPHPからWindowsの環境変数を読み取る方法は?

$_SERVER['APPSETTING_Imgur_Client_Id'];

Set Azure Application Environment variables

Azure $_SERVER

私は(直接ウィンドウに)エンバイロメント変数を設定することによって、私の開発エンバイロメント(Windowsの場合)で同じmecanismを使用して、私のアプリでそれらを使用したいです。

だから私は定義されている2つのWindowsの変数(system properties->Environment Variables->User Variables):

Set Windows's Evironment variables

をしかしthoses変数は$_SERVER['APPSETTING_Imgur_Client_Id'];(CMD php -S [::]:80 index.php付き)を介して利用できません。 私はデフォルトの$ _SERVER変数しか持っていません。

だから私はaskyingだ:

  • どのようにPHPでthosesのWindowsのevironment変数を読み取るために?

  • PHPアプリケーションコードを使用せずにカスタム$ _SERVER変数を追加する方法がない場合。

    PHP 7.1.10 
    & 
    Windows Server 2016 
    

    私は(今System variables下)の変数の位置を変更しているし、自分のコンピュータを再起動:


私が使用しています。

その後、getenv('APPSETTING_Imgur_Client_Id'')または$_SERVERであっても、自分のカスタム変数にアクセスすることはできません。

は、しかし、私は私のコードを編集したい場合は、コマンドラインphp -r 'var_export($_SERVER);'と私は私の変数

を見ることができ、私はレポのクローンを作成し、 php -S [::]:80 index.phpでローカルディレクトリからWebサーバを起動します。 php -SコマンドがWindows環境を通過しないことを確認します。

ありがとう。

編集:ソリューション:

使用getenv下図参照:

Postman sample, with both user env and system env

+0

@NineBerryあなたの答えは正しいです、 'getenv( 'somevar')'は、 '$ _SERVER ['somevar']' 。私は前の質問にロールバックすべきですか?または私は答えを投稿すべきですか?どうもありがとう。 – user8738918

答えて

0

getenv機能を使用してください。 Webサーバが別のユーザーアカウントで実行されたときにsystem properties->Environment Variables->User Variablesの下で設定された変数は、Webサーバーによってように見えることができないというhttp://php.net/manual/en/function.getenv.php

ノートで

ドキュメント。変数を設定する必要がありますsystem properties->Environment Variables-> System Variables(そして、それらを利用可能にするためにWebサーバを再起動してください)

+0

私は変数の場所を変更しました(今は 'システム変数'の下にあります)、私のコンピュータを再起動しました。 その後、 'getenv( 'APPSETTING_Imgur_Client_Id' ')'または '$ _SERVER'を使用しても私はカスタム変数にアクセスできません。 編集: コマンドライン 'php -r 'var_export($ _ SERVER);''自分の変数を見ることができます – user8738918

+0

@ user8738918あなたのPHPコードをテストするための設定は何ですか? – NineBerry

+0

私のコードを編集したいのであれば、私はリポジトリをクローンし、 'php -S [::]:80 index.php'でローカルディレクトリからウェブサーバーを起動します。 私はphp7とWindowsサーバー2016(10.0.14393)を持っています。 'php -S'コマンドがWindows環境に合格していないことを確認します。 – user8738918

関連する問題