I am trying to access an system variable within my Laravel 4 project. Similar to using ENV['VARIABLE_NAME']
to access a system variable in an RoR project.
Within my Laravel code getenv('VARIABLE_NAME')
returns an empty string. However, I can access and print this variable to the screen using php -r "echo getenv('VARIABLE_NAME')"
at the command prompt.
php -i
confirmed that this variable is also stored in php's $_SERVER
superglobal. However, attempting to access $_SERVER['VARIABLE_NAME']
from the database.php file of my project results in an Undefined index: VARIABLE_NAME
error.
Can I not access arbitrary system variables from php for some reason (e.g., potential security issue, perhaps) ? If this is the case, how can I expose the system variable I need to my Laravel 4 project?
If configuration matters, I'm using php5-fpm and nginx to serve up my PHP on Ubuntu 13.04 Server. PHP version is 5.5.
After fighting with this for much longer than necessary, the proper approach is to use the php5-fpm
www.conf
file in thepool.d
directory of your php5-fpm install. For me this was at/etc/php5/fpm/pool.d/www.conf
.In
www.conf
there is a specific section of the file that lists several environment variables with the following syntax:So just add your own and then you can then access these variables in your Laravel app with
Works like a champ.
It looks like an nginx related problem,
nginx
passes parameters toPHP
throughfastcgi_param
directives, so, you have to set it up, just add one you need where you set up otherparams
, this is an example (Setting up FastCGI Variables)Check How nginx processes a request and this answer (this one too) as well. I can access any environment variable from
PHP
onApache
. Hope this helps but can't be more specific.