1

実行している環境に応じて異なるデータベースパスワードなどを使用するようにコードを調整しようとしています。たとえば、開発サーバーがあり、他の開発者が開発者であり、本番環境がさらに別の設定セットを持っています。

コハナプロジェクトもいくつかあるので、アプリに環境変数KOHANA_ENVを使用して、実行場所を決定することにしました。

問題は、これが機能している間、私のWAMPサーバーにあることです。

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

、これはしません(空を返します):

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

setコマンドプロンプトを入力すると、次のように表示されます。

KOHANA_ENV=devbox1

だからそれはうまくいくはずです。

4

2 に答える 2

2

WAMPは、wampmanager.exeを実行している人としてではなく、Apacheサービスが実行するように設定されているものとして実行されます。通常はLocalService(ローカルシステムアカウント)です。

http://support.microsoft.com/kb/821761には、次のように記載されています。

環境変数を更新したり、新しい環境変数を追加したりする場合は、ローカルシステムアカウントで実行されるサービスに変更を加える前に、コンピューターを再起動する必要があります。

この動作は、ローカルシステムアカウントで実行されるサービスがServices.exeプロセスから環境を継承するために発生します。Services.exeプロセスは、Windowsの起動時に、ローカルシステムアカウントの環境設定を受け取ります。Services.exeプロセスはWindowsメッセージングを使用しないため、Windowsの起動後に値が変更されたことを示すメッセージを受信した場合、Services.exeプロセスは環境設定を更新しません。実行中のサービスに、ローカルシステムアカウントの環境への動的な変更を確認するように強制することはできません。

実際、環境変数をシステム環境変数に追加した後にコンピューターを再起動すると、次のコードが表示されます。

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

期待されるものを印刷します。

于 2011-08-26T15:08:59.090 に答える
0

これはベルを鳴らします..多分これを試してみてください、

global $HTTP_ENV_VARS;
echo $HTTP_ENV_VARS["KOHANA_ENV"]
于 2011-08-23T14:13:27.450 に答える