2011-08-23 9 views
1

私は自分のコードを、実行環境に応じて異なるデータベースパスワードを使用するように調整しようとしています。例えば、私は自分のdevサーバを持っていて、他の開発者は彼と生産envにはもう一つの設定があります。WAMPサーバーで環境変数にアクセスするにはどうすればよいですか?

私はKohanaプロジェクトもいくつか持っているので、アプリケーションの環境変数KOHANA_ENVを使用して、どこで実行されているかを判断しました。この作品ながら

問題は、その私のWAMPサーバである:

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

、これは(リターンが空要素を基底として)されていません。

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

私はコマンドプロンプトでsetを入力すると、私はこれを参照してください:

KOHANA_ENV=devbox1 

だからそれは動作するはずです。

答えて

2

WAMPは、Apacheサービスをとして実行するように設定されているものではなく、人ランニングwampmanager.exeとして実行されませんが、多分これを試してみてください。一般的にLocalService(ローカルシステムアカウント)です。あなたは、環境変数を更新したり、新しい環境変数を追加した場合

こと

http://support.microsoft.com/kb/821761状態あなたが行った変更は、ローカルシステムアカウントで実行 サービスに影響を与える前に、 あなたはコンピュータを再起動する必要があります。

この現象はローカルシステム アカウントで実行されるサービスがServices.exeプロセスから環境を継承するために発生します。 Services.exeプロセスは、Windowsの起動時にローカル システムアカウントの環境設定を受け取ります。 Services.exeプロセス がWindows Messagingを使用しないため、 が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

関連する問題