2012-06-29 182 views
21

我假設MAMP環境變量可以在〜/ .bash_profile中設置,但是似乎在那裏設置它們並不總是立即生效。例如,我只是在我的.bash_profile中設置了一個變量,並嘗試重新啓動MAMP服務器,重新啓動MAMP本身,甚至註銷我的計算機,似乎沒有任何工作。該變量仍然無法在我的環境中訪問。是否有另一種方法來設置我錯過的MAMP env vars,或者是否有需要清除的緩存?在MAMP中設置環境變量?

在此先感謝。

回答

32

當啓動apache時,MAMP會將/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上不起作用。我試着編輯這個文件以及其他相鄰的文件'envvars_'和'envvars-std',每次更改後重新啓動MAMP。有沒有一個配置文件,我可以挖掘到這裏正在加載?這有什麼其他先決條件嗎?我期望在所有主機中添加幾個ENV,這使得此解決方案比下面的每臺主機更具吸引力。 –

+1

@EvanMattson我沒有安裝MAMP Pro,但是如果您可以找到MAMP Pro使用的'apachectl'腳本,您可以閱讀該源以找到答案。在我的路徑中,正確的envvars文件的路徑位於'#的註釋中#拾取任何必要的環境變量' – sxalexander

+0

感謝您指出該文件。我可能只是誤解了這一點。我正在使用PHP檢查這些存在,但這些可能是Apache環境變量的權利? 'SetEnv'方法可行,但就像我說的,我想在所有主機上定義變量,而不是爲每個主機定義變量。 –

0

我假設你正在談論本地服務器?

我注意到,如果你看看Apache可以有多個實例運行的進程,你可能需要檢查。如果是,則單獨退出,因爲在所有實例重新啓動之前,重新啓動不會進行新的更改。要嘗試的東西。

30

您還可以在主機上設置面板的擴展選項卡中找到的additional parameters for <VirtualHost>:部分設置在MAMP Pro的PHP環境變量(單位爲毫安不可用)。

mamp setting php environment variable

截圖是甲基苯丙胺臨至五3.0.3

+4

這假設你使用MAMP Pro。 –

+1

您也可以添加評論: #設置本地環境變量 SetEnv APP_ENV local –

+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

如果仍然不能得到你的環境變量:

您可能需要編輯您的real httpd。CONF在

〜/庫/ Application Support/appsolute/MAMP PRO/

,而不是

/應用程序/ MAMP/conf目錄/阿帕奇/

而且您可能需要使用getenv()而不是$ _ENV

4

MAMP正在尋找「/ Applications/MAMP/Library/bin/envvars」,如果文件沒有,只需創建它並添加環境變量。

+1

同樣使用:'echo'export KEY = VALUE'>>/Applications/MAMP/Library/bin/envvars' –