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.
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
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
You can set your environment variables in Apache configuration...
/Applications/MAMP/conf/apache/httpd.conf
SetEnv MY_VAR theValue
SetEnv ANOTHER thisIsTheValue
MAMP is looking for "/Applications/MAMP/Library/bin/envvars", if the file doesn't, simply create it and add your environment variables.
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.
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
But it doesn't work with El Capitan. You should disable System Integrity Protection.
original