而我在httpd.conf(Apache)的SETENV = PROD
定义并在PHP来电ENV(使用的getenv()函数)GETENV从终端运行PHP脚本
从终端(MAC)运行的同时返回null php file.php env为NULL
但是当我从网页上运行它的工作时;并打印“prod”
而我在httpd.conf(Apache)的SETENV = PROD
定义并在PHP来电ENV(使用的getenv()函数)GETENV从终端运行PHP脚本
从终端(MAC)运行的同时返回null php file.php env为NULL
但是当我从网页上运行它的工作时;并打印“prod”
在macOS和Linux中,有几种方法可以设置在控制台(终端)中运行的程序的环境。 (该程序在Windows上相似,但语法不同。)
你可以把env=prod
在命令行前设置环境变量env
与价值prod
仅适用于命令行的当前执行:
$ env=prod php -f script.php
您可以使用export env=prod
作为单独的命令行。它为环境值env
设置值prod
,用于当前在控制台中运行的shell的执行。在它前面的export
关键字告诉shell传递变量从现在开始启动的所有进程(直到您关闭Shell或取消设置的变量):
$ export env=prod
$ php -f script.php
如果要永久设置变量,然后您将export env=prod
行设置为~/.profile
或~/.bashrc
或您首选shell的初始化脚本(如果它不是bash
)。所有后续启动的shell实例都将执行初始化脚本,并在其环境中将env
变量的值设置为prod
,并将其标记为可导出到shell启动的子进程。
apache是一个sapi,cli是完全不同的一个。 – hassan
另外很可能你有一个用于Apache的'php.ini',另一个用于PHP CLI – RiggsFolly
因此,当您以完全绕过Web服务器的方式执行PHP脚本时,您在Web服务器级别配置的内容不起作用(命令线) - 这应该不是一个惊喜。 – CBroe