Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php getenv()在浏览器中工作,但在命令行中不工作_Php_Linux_Command Line - Fatal编程技术网

Php getenv()在浏览器中工作,但在命令行中不工作

Php getenv()在浏览器中工作,但在命令行中不工作,php,linux,command-line,Php,Linux,Command Line,在我的服务器上,我有一个环境变量设置为“valueOfMyVariable”。我的问题是,如果在命令行中运行该文件,getenv()返回false,但如果从浏览器中运行该文件,则返回true 从命令行(php myfilename.php)运行此代码将返回'false' 从浏览器运行此代码将返回“valueOfMyVariable”。 我希望这两个调用的结果都是'valueOfMyVariable' 有人知道为什么在第一种情况下,我的变量是false?该问题是否来自配置问题 如果我不够清楚,请

在我的服务器上,我有一个环境变量设置为“valueOfMyVariable”。我的问题是,如果在命令行中运行该文件,getenv()返回false,但如果从浏览器中运行该文件,则返回true

从命令行(
php myfilename.php
)运行此代码将返回
'false'

从浏览器运行此代码将返回“valueOfMyVariable”。

我希望这两个调用的结果都是
'valueOfMyVariable'

有人知道为什么在第一种情况下,我的变量是
false
?该问题是否来自配置问题


如果我不够清楚,请随意询问精度,问题很简单,但很难正确解释,因为英语不是我的主要语言。

听起来好像你没有在终端会话中导出环境变量

export myEnvVariable=someValue
php myfilename.php

它可能在浏览器中工作,因为Web服务器正在设置环境变量。

需要检查的一件事是变量的大小写。@JasonK如果您的意思是在开关大小写中检查变量,那么在命令行中运行脚本,我总是以默认大小写结束,而不是
getenv('myEnvVariable')=='valueOfMyVariable'
大小写。它可以在浏览器中正常工作。根据操作系统的不同,getenv()并不总是不区分大小写。”路径“!=”PATH'它工作正常,谢谢。:)有没有办法将其保存在服务器的“内存”中?否则,每次启动ssh会话时,我都必须再次写入导出行。不,环境变量不是这样工作的。环境是从调用进程继承的一组变量。这是否意味着从服务器crontab调用的文件也无法访问该环境变量?是的,这是正确的。环境变量通常在shell启动脚本中设置,如
.bashrc
.profile
。这些脚本不是由
cron
自动运行的。通常的过程是将变量设置放入使用
include
require
加载的PHP脚本中。