【发布时间】:2015-03-05 14:10:15
【问题描述】:
我的test.php 文件如下所示:
<?php
echo $_SERVER["myEnvVariable"];
echo getenv("myEnvVariable");
以上将返回我设置的环境变量两次。它在从服务器外部调用脚本时起作用。
如果我使用命令行命令在服务器上调用相同的脚本:
php test.php
或使用 cronjob
****** curl http://localhost/test.php
没有返回任何内容。
如何在服务器本身中提供我的环境变量?我在 Apache httpd.conf 文件中设置我的环境变量。
【问题讨论】:
-
是否像从命令行运行时一样为您登录的帐户设置了 env var?因为命令行不关心你的 apache 配置中可能设置的内容
-
如果您尝试使用 http,并使用真实的 url 而不是 localhost,您会获得 env 变量吗?
-
当您从命令行使用
php命令调用它时,您绕过了 Apache,这就是您没有获取 env 变量的原因。不知道如何解决它。 @MarkBaker,您应该写一个答案,概述如何为“您登录的帐户”设置 var。 -
取决于操作系统,但通常在 Linux 上,您可以在调用
php test.php之前的某个时间点执行export myEnvVariable=myValue
标签: php apache cron environment-variables