Laravel 4 acessando variables ​​de ambiente

Estou tentando acessar uma variável de sistema no meu projeto Laravel 4. Semelhante ao uso de ENV['VARIABLE_NAME'] para acessar uma variável do sistema em um projeto RoR.

Dentro do meu código Laravel getenv('VARIABLE_NAME') retorna uma string vazia. No entanto, posso acessar e imprimir esta variável na canvas usando php -r "echo getenv('VARIABLE_NAME')" no prompt de comando.

php -i confirmou que esta variável também é armazenada no $_SERVER superglobal do php. No entanto, tentar acessar $_SERVER['VARIABLE_NAME'] no arquivo database.php dos resultados do meu projeto em um Undefined index: VARIABLE_NAME erro Undefined index: VARIABLE_NAME .

Não posso acessar variables ​​de sistema arbitrárias de php por algum motivo (por exemplo, problema de segurança potencial, talvez)? Se este for o caso, como posso expor a variável do sistema que eu preciso para o meu projeto Laravel 4?

Se a configuração for importante, estou usando php5-fpm e nginx para servir meu PHP no Ubuntu 13.04 Server. A versão PHP é 5.5.

Depois de lutar com isso por muito mais tempo do que o necessário, a abordagem adequada é usar o arquivo www.conf php5-fpm no diretório pool.d da sua instalação php5-fpm. Para mim, isso foi em /etc/php5/fpm/pool.d/www.conf .

Em www.conf há uma seção específica do arquivo que lista várias variables ​​de ambiente com a seguinte syntax:

 env[VARNAME] = $ENV_VAR_NAME 

Então, apenas adicione o seu próprio e, em seguida, você pode acessar essas variables ​​em seu aplicativo Laravel com

 getenv('VARNAME') 

Funciona como um campeão.

Parece um problema relacionado ao nginx , o nginx passa os parâmetros para PHP através de diretivas fastcgi_param , então você precisa configurá-lo, basta adicionar um que você precisa onde você configura outros params , este é um exemplo ( Configuração de Variáveis ​​FastCGI )

 ; /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; 

Verifique como o nginx processa uma solicitação e essa resposta ( essa também ) também. Posso acessar qualquer variável de ambiente do PHP no Apache . Espero que isso ajude, mas não pode ser mais específico.