在apache环境中setenv的等价物是什么? 与Apache我能够例如设置环境“SOMEENV”,并通过$ _ENV ['SOMEENV']在PHP中访问它 – 但我不知道如何用Nginx + PHP-fpm做到这一点。
我最初以为我只需在我的PHP-fpm池的configuration中设置ENV [SOMENEV] = test,但是var_dump($ _ ENV)仍然不会返回任何结果。
任何提示?
将多个驱动器号分配给variables
从Java执行源命令
为没有login的用户设置环境variables
为什么Perl的glob为其他调用返回undef?
BAT文件:奇怪的SET(?)行为
如何将输出存储在Windows的“where”命令中的variables中?
使用maven 2.x设置环境variables
从PowerShell设置时,如何处理Windows PATHvariables扩展?
循环通过文件保存到variables
在不同的c文件中访问pthread中的全局variables
Nginx没有办法影响PHP的环境,因为它没有将PHP解释器嵌入到其进程中。 它通过fastcgi_param指令将参数传递给PHP。 你可以添加一个你设置其余的参数,并通过$ _SERVER访问它:
location ~ .PHP$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param SOMEENV test; fastcgi_pass PHP; }
请注意$_ENV变量的可用性取决于PHP-fpm使用的PHP.ini中的variables_order的设置。 默认是EGPCS ,其中E是环境,但是在Ubuntu 12.04上,我发现它是GPCS 。 PHP.ini本身带有$_ENV的警告:
; This directive determines which super global arrays are registered when PHP ; starts up. G,P,C,E & S are abbreviations for the following respective super ; globals: GET,POST,COOKIE,ENV and SERVER. There is a performance penalty ; paid for the registration of these arrays and because ENV is not as commonly ; used as the others,ENV is not recommended on productions servers.
它建议使用始终可用的getenv() 。 我发现我在FPM池中设置的变量可以通过这种方式获取。
我在PHP-fpm.d / http://www.conf中设置了所有env […] =变量在尝试了一个周末之后,我发现访问这些变量的唯一方法是使用$ _SERVER,$ _ENV不能访问这些变量。 有人可以提出一个想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。