getenv在运行php脚本时从终端返回null

时间:2017-05-09 11:53:39

标签: php apache

我在httpd.conf(Apache)中定义了setEnv = prod
并在php中调用ENV(使用getenv()函数)

从终端(mac)php file.php运行时,env为NULL
但是当我从网页上运行它时它的工作;并打印“prod”

1 个答案:

答案 0 :(得分:0)

有几种方法可以设置您在macOS和Linux中的控制台(终端)中运行的程序的环境。 (这些过程在Windows上类似,但语法不同。)

您可以将env=prod放在命令行前面,仅为当前执行该命令行设置值env的环境变量prod

$ env=prod php -f script.php

您可以将export env=prod用作单独的命令行。它为您在控制台中运行的shell的当前执行设置环境值env,其值为prod。前面的export关键字告诉shell将变量传递给它从现在开始启动的所有进程(直到你关闭shell或取消设置变量):

$ export env=prod
$ php -f script.php

如果您想永久设置变量,那么您可以将行export env=prod放在~/.profile~/.bashrc或首选shell的初始化脚本中(如果它不是bash )。您启动的shell的所有后续实例都会执行初始化脚本,并在其环境中设置值为env的{​​{1}}变量,并将其标记为可导出到shell启动的子进程。