2012-06-29 60 views
21

〜/ .bash_profileにMAMP環境変数を設定できると仮定していますが、そこに設定してもすぐには有効にならないと思われます。たとえば、私は自分の.bash_profileに変数を設定し、MAMPサーバの再起動、MAMP自体の再起動、さらにはコンピュータからのログアウトなど、何も動作していないようです。変数は私の環境からはまだアクセスできません。私が行方不明になっているMAMPのenv値を設定するもう一つの方法はありますか、または私がクリアする必要のあるキャッシュがありますか?MAMPの環境変数を設定していますか?

ありがとうございます。

答えて

32

MAMPは、Apacheを起動するときに、その環境変数に/Applications/MAMP/Library/bin/envvarsの内容を読み込みます。だから、ファイルを編集して追加することができます。

MY_VAR="foo" 
export MY_VAR 

そして、そのように、その変数にアクセス:

echo $_ENV["MY_VAR"]; 

プリント:

foo 

OSXヨセミテの更新:

を名前を変更envvars_envvars

参照:MAMP Pro 3.05 on Mavericks updated to Yosemite - Apache does not start

+0

これはMAMP Pro 3.0.6ではうまくいきませんでした。私はこのファイルだけでなく、変更のたびにMAMPを再起動する 'envvars_'と' envvars-std'という隣接ファイルも編集しようとしました。これがロードされている場所を調べるための設定ファイルがありますか?これが動作するための他の前提条件はありますか?私はすべてのホストにいくつかのENVを追加することを検討しています。これにより、このソリューションはホストごとのものよりも魅力的です。 –

+1

@EvanMattson私はMAMP Proをインストールしていませんが、MAMP Proが利用する 'apachectl'スクリプトがある場合は、そのソースを読んで答えを見つけることができます。私の場合、正しいenvvarsファイルへのパスは、 '#必要な環境変数を取得する 'のコメントの下にあります。 – sxalexander

+0

そのファイルを指摘してくれてありがとう。私はおそらくこれを誤解しているだけです。私はPHPを使用してこれらの存在を確認していましたが、おそらくApache環境変数でしょうか? 'SetEnv'メソッドは機能しますが、私が言ったように、私はすべてのホスト上で変数を定義したいのですが、それぞれを定義する必要はありません。 –

0

私はあなたがローカルサーバーについて話していると仮定していますか?

私が気付いたのは、apacheが複数のインスタンスを実行している可能性があるプロセスを調べることができる場合です。そうであれば、再起動はすべてのインスタンスが再開されるまで新しい変更を行いませんので、個別に終了してください。試してみるもの。

30

また、ホストの設定パネルの拡張タブにadditional parameters for <VirtualHost>:セクションで(MAMPでは使用できません)MAMP ProでPHPの環境変数を設定することができます。

mamp setting php environment variable

スクリーンショットはMAMP ProのV 3.0.3

+4

MAMP Proを使用していることを前提としています。 –

+1

あなたもコメントを追加することができます: #ローカル環境変数を設定します SetEnv APP_ENVローカル –

+0

デフォルトのライブラリパスを変更するには?私は今/ user/binを持っていますが、私のライブラリは/ usr/local/bin/ffmpegにありますので、変更してください。SetEnv APPLICATION_ENV/usr/local/binのように書くべきですか? – fdrv

3
あなたは、Apacheの設定でご使用の環境変数を設定することができます

...

/Applications/MAMP/conf/apache/httpd.conf 

SetEnv MY_VAR theValue 
SetEnv ANOTHER thisIsTheValue 
0

からであるあなたはまだあなたの環境を得ることができない場合変数:

httpdを編集する必要があります。また

〜/ライブラリ/ Application Support/appsolute/MAMP PRO/

代わりの

/アプリケーション/ MAMP/confに/ apacheの/

でのconf の代わりにのgetenv()を使用する必要があります。$ _ENV

4

MAMPは "/ Applications/MAMP/Library/bin/envvars"を探していますが、ファイルがない場合は単に作成して環境変数を追加します。

+1

'echo 'export KEY = VALUE' >> /アプリケーション/ MAMP /ライブラリ/ bin/envvars' –

関連する問題