I am trying to get apache/php to recognize the path to my git. I have been researching and looking in all corners of the web and cannot find how to do this. Basically, no matter what I try, when I run echo phpinfo();
the Apache Environment
path does not change from /usr/bin:/bin:/usr/sbin:/sbin
. And when I run system('echo $PATH');
in PHP, it reads the same.
System Information:
- Mac OSX (Lion)
- Apache 2 (running as _www)
- PHP 5.3.6
Here is what I have tried editing so far:
- /etc/profile
- ~/.bash_profile
- ~/.profile
- /etc/path
- /etc/path.d/{NEW_FILE}
Nothing I have tried so far has changed the $PATH
variable. Any ideas?
SOLUTION
So here is the final solution. I edited the
/System/Library/LaunchDaemons/org.apache.httpd.plist
and added
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin</string>
</dict>
Did you update the PATH environment variable of user '_www'? Apache will read environment variables from the user runs itself. Or, it looks like you didn't restart apache after updating PATH environment variable.
And if you want to modify environment variable in PHP, getenv() and putenv() can be a better choice.
putenv : http://www.php.net/manual/en/function.putenv.php
$path = getenv('PATH'); putenv( "PATH=$path:/new_path_that_you_want_to_add" );
A similar problem to what I was having installing Derby. The way I solved it was by opening TextEdit. Select File > Open at this point press Shift + Command + . , this will allow you to view all the documents. Head to the user directory and search for a file called ".profile" . Open it and add the export VARIABLE= Value line for example:
export DERBY_HOME=/opt/local/share/java/derby/
Save the document and restart your terminal to see if the changes went into affect.
You can set the PATH environment variable in
/System/Library/LaunchDaemons/org.apache.httpd.plist
.More in the docs.
I created this gist that helped me out from the information above:
https://gist.github.com/srayhunter/5208619
My problem was that PHP was not finding a program that we had installed under /usr/local/bin. Once we did the above it all worked and played nice on mac osx.
for ubuntu server, in /etc/apache2/envvars, for centos server, in /etc/sysconfig/httpd, to add:
and restart apache
Important note for El Capitan (Apologies for the new answer - I don't have enough Rep to comment)
On OSX 10.11, the /System/Library folder is protected, so the files can't be edited.
You need to:
csrutil disable
csrutil enable
Hope that helps