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.
It looks like an nginx related problem, nginx
passes parameters to PHP
through fastcgi_param
directives, so, you have to set it up, just add one you need where you set up other params
, this is an example (Setting up FastCGI Variables)
; /etc/nginx/fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
Check How nginx processes a request and this answer (this one too) as well. I can access any environment variable from PHP
on Apache
. Hope this helps but can't be more specific.
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.