Laravel 4 accessing environment variables

laravel, nginx, php

Solution

After fighting with this for much longer than necessary, the proper approach is to use the php5-fpm `www.conf` file in the `pool.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:

env[VARNAME] = $ENV_VAR_NAME

So just add your own and then you can then access these variables in your Laravel app with

getenv('VARNAME')

Works like a champ.

Problem

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.

Original source

Related problems