使用内置PHP web服务器设置环境变量
PHP5.4支持用于开发目的的。我们正在开发的应用程序是通过环境变量配置的 使用Apache,您可以执行以下操作:使用内置PHP web服务器设置环境变量,php,environment-variables,embeddedwebserver,Php,Environment Variables,Embeddedwebserver,PHP5.4支持用于开发目的的。我们正在开发的应用程序是通过环境变量配置的 使用Apache,您可以执行以下操作: SetEnv FAVORITE_COLOR white 使用普通CLI,您可以执行以下操作: $ export FAVORITE_COLOR=black $ php -a php > echo $_SERVER['FAVORITE_COLOR']; 有没有办法为内置web服务器设置这些变量?看起来E被排除在运行内置服务器的变量顺序设置之外。如果将E添加到变量_顺序设置中,
SetEnv FAVORITE_COLOR white
使用普通CLI,您可以执行以下操作:
$ export FAVORITE_COLOR=black
$ php -a
php > echo $_SERVER['FAVORITE_COLOR'];
有没有办法为内置web服务器设置这些变量?看起来E被排除在运行内置服务器的变量顺序设置之外。如果将E添加到变量_顺序设置中,它将起作用: test.php
<?php
var_dump($_ENV['FOO']);
输出:
string 'BAR' (length=3)
在Windows上的PHP 5.4.12上测试:
SET FOO=BAR
php -s localhost:9090
如果您像在第二个示例中那样设置环境变量,然后使用适当的选项而不是
-a
,来启动web服务器会怎么样?在$\u ENV
中没有任何内容,$\u server
中的典型内容(例如'DOCUMENT\u ROOT'
)会返回任何内容吗?这是。。。令人不安。如果使用setenv
,您至少可以在getenv
或$\u ENV
中获取相同的值吗?我想自己测试一下,但我手头没有5.4的副本。可以使用getenv(“FAVORITE\u COLOR=VIOLET\u BLUE”)
检索带有putenv(“FAVORITE\u COLOR”)
的变量集,但是$\u ENV
将保持为空。令人不安的强词=)如果您想知道为什么在Symfony2中设置容器参数不起作用,请查看此问题:因此无法将其显示在$\u SERVER
?@caessol中。看起来2014年报告的php问题被标记为2015年无法修复。$\u ENV
似乎不可靠,它可能在php.ini
中被禁用,我们可能无法更改它。我发现当PHP 7 CLI web服务器上的$\u ENV
为空时,getenv()
可以工作。但是,同时,如果这些环境变量是通过Apache或NGINX设置的,它们将显示为CGI变量,并且Apache和NGINX似乎会填充$\u服务器
,但不一定是getenv
@lomse,它在windows上的git bash shell中为我工作,如果您已经安装了linux子系统,它可能也可以在linux子系统中工作。
SET FOO=BAR
php -s localhost:9090