Setting Environment Variables in MAMP?

2019-01-16 20:24发布

问题:

I assume that MAMP environment variables can be set in ~/.bash_profile, but it seems that setting them there does not always take effect right away. For instance, I just set a variable in my .bash_profile and have tried restarting MAMP servers, restarting MAMP itself, and even logging out of my computer and nothing seems to work. The variable is still not accessible from within my environment. Is there another way to set MAMP env vars that I'm missing or is there a cache that I need to clear?

Thanks in advance.

回答1:

MAMP will load the contents of /Applications/MAMP/Library/bin/envvars into its environment variables when starting apache. So you can edit the file and add:

MY_VAR="foo"
export MY_VAR

Then access that variable like so:

echo $_ENV["MY_VAR"];

prints:

foo

Update for OSX Yosemite:

rename envvars to _envvars

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



回答2:

You can also set PHP environment variables in MAMP Pro (not available in MAMP) in the additional parameters for <VirtualHost>: section found in the extended tab of the hosts settings panel.

Screenshot is from MAMP Pro v 3.0.3



回答3:

You can set your environment variables in Apache configuration...

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

SetEnv MY_VAR theValue
SetEnv ANOTHER thisIsTheValue


回答4:

MAMP is looking for "/Applications/MAMP/Library/bin/envvars", if the file doesn't, simply create it and add your environment variables.



回答5:

I'm assuming you're talking about a local server?

I've noticed, if you look at the processes that apache can have multiple instance running that you might need to check. If they are, quit out of them individually, as the restart won't take the new changes until all instances are restarted. Something to try.



回答6:

If you still can't get your environment variables:

you may need to edit your real httpd.conf in

~/Library/Application Support/appsolute/MAMP PRO/

instead of

/Applications/MAMP/conf/apache/

Also you may need to use getenv() instead of $_ENV



回答7:

But it doesn't work with El Capitan. You should disable System Integrity Protection.

original



标签: php macos mamp