Php Laravel 4访问环境变量
我正在尝试访问我的Laravel 4项目中的系统变量。类似于使用Php Laravel 4访问环境变量,php,nginx,laravel,Php,Nginx,Laravel,我正在尝试访问我的Laravel 4项目中的系统变量。类似于使用ENV['VARIABLE\u NAME']访问RoR项目中的系统变量 在my Laravel代码中getenv('VARIABLE_NAME')返回一个空字符串。但是,我可以在命令提示符下使用php-r“echo getenv('variable_NAME')”访问此变量并将其打印到屏幕上 php-i确认此变量也存储在php的$\u服务器中。但是,尝试从我的项目的database.php文件访问$\u服务器['VARIABLE\u
ENV['VARIABLE\u NAME']
访问RoR项目中的系统变量
在my Laravel代码中getenv('VARIABLE_NAME')
返回一个空字符串。但是,我可以在命令提示符下使用php-r“echo getenv('variable_NAME')”
访问此变量并将其打印到屏幕上
php-i
确认此变量也存储在php的$\u服务器中。但是,尝试从我的项目的database.php文件访问$\u服务器['VARIABLE\u NAME']
,会导致未定义索引:VARIABLE\u NAME
错误
出于某种原因(例如,可能存在潜在的安全问题),我能否从php访问任意系统变量?如果是这种情况,我如何将我需要的系统变量公开给我的Laravel 4项目
如果配置很重要,我将使用php5 fpm和nginx在ubuntu13.04服务器上提供我的PHP。PHP版本是5.5。它看起来像是一个相关的问题,nginx
通过fastcgi_param
指令将参数传递给PHP
,因此,您必须设置它,只需在设置其他参数的地方添加一个您需要的参数,这是一个示例()
同时检查和()。我可以从Apache
上的PHP
访问任何环境变量。希望这有帮助,但不能说得更具体。在与此抗争了很长时间之后,正确的方法是使用php5 fpm安装目录的pool.d
目录中的php5 fpmwww.conf
文件。对我来说,这是在/etc/php5/fpm/pool.d/www.conf
在www.conf
中,文件的一个特定部分列出了几个具有以下语法的环境变量:
env[VARNAME] = $ENV_VAR_NAME
因此,只需添加您自己的变量,然后您就可以在您的Laravel应用程序中使用
getenv('VARNAME')
工作起来就像一个冠军。我试图访问app/config/database.php中的服务器[“REDIRECT\u URL”]
,效果很好。可能您正试图访问CLI
特定变量,该变量可能无法用于Web请求。我使用fastcgi_参数
进行了一段时间的调查,以实现我的目标。我用这种方法不断遇到障碍。看看我最终做了什么,我接受的答案。不过,谢谢你的贡献。您的源代码链接对于理解nginx如何与fastCGI交互非常有帮助。+1,这对于将来的参考非常有用,谢谢您的回答。
getenv('VARNAME')