首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 4访问环境变量

Laravel 4访问环境变量
EN

Stack Overflow用户
提问于 2013-11-18 23:53:01
回答 2查看 5.3K关注 0票数 3

我正在尝试访问我的Laravel 4项目中的一个系统变量。类似于使用ENV['VARIABLE_NAME']访问RoR项目中的系统变量。

在我的Laravel代码中,getenv('VARIABLE_NAME')返回一个空字符串。但是,我可以在命令提示符下使用php -r "echo getenv('VARIABLE_NAME')"访问这个变量并将其打印到屏幕上。

php -i确认这个变量也存储在php的$_SERVER超级全局中。但是,试图从我的项目的$_SERVER['VARIABLE_NAME']文件访问database.php会导致Undefined index: VARIABLE_NAME错误。

由于某些原因(例如,可能的安全问题),我不能从php访问任意的系统变量吗?如果是这样的话,我如何向我的Laravel 4项目公开我需要的系统变量?

如果配置重要,我将使用php5-fpm和nginx在Ubuntu13.04服务器上提供PHP。PHP版本为5.5。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-20 22:43:00

在与此进行了长时间的必要斗争之后,正确的方法是在php5-fpm安装的pool.d目录中使用php5-fpm www.conf文件。对我来说,这是在/etc/php5/fpm/pool.d/www.conf

www.conf中,文件中有一个特定的部分,其中列出了几个环境变量,语法如下:

代码语言:javascript
复制
env[VARNAME] = $ENV_VAR_NAME

因此,只需添加您自己的,然后您就可以访问这些变量在您的Laravel应用程序

代码语言:javascript
复制
getenv('VARNAME')

就像冠军一样。

票数 8
EN

Stack Overflow用户

发布于 2013-11-19 00:49:42

这看起来像是一个与nginx相关的问题,nginx通过fastcgi_param指令将参数传递给PHP,所以,您必须设置它,只需添加一个您需要的设置其他params的位置,这是一个示例(设置FastCGI变量)。

代码语言:javascript
复制
; /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;

检查nginx如何处理请求这个答案 (这个也是)。我可以在PHP上访问Apache上的任何环境变量。希望这有帮助,但不能说得更具体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20060426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档