Laravel 4 accessing environment variables

后端 未结 2 1479
情深已故
情深已故 2020-12-18 11:29

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.

相关标签:
2条回答
  • 2020-12-18 11:54

    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.

    0 讨论(0)
  • 2020-12-18 12:03

    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.

    0 讨论(0)
提交回复
热议问题