如何使用getenv()在PHP脚本中使用环境变量?

如何使用getenv()在PHP脚本中使用环境变量?,php,bash,ubuntu,environment-variables,Php,Bash,Ubuntu,Environment Variables,在PHP脚本中使用getenv()时遇到问题。我已在bash会话中设置了环境变量: MYPATH=~/some/kind/of/path 我已经验证了它的工作原理: echo $MYPATH 我的问题: 当我在PHP web脚本中使用它时,为什么getenv('MYPATH')返回false?我希望返回/home/user/some/kind/of/path Ref:如果要获取当前目录的文件路径,可以使用以下命令: define("FILE_ROOT", dirname(__FILE__));

在PHP脚本中使用
getenv()
时遇到问题。我已在bash会话中设置了环境变量:

MYPATH=~/some/kind/of/path

我已经验证了它的工作原理:

echo $MYPATH
我的问题:

当我在PHP web脚本中使用它时,为什么
getenv('MYPATH')
返回
false
?我希望返回/home/user/some/kind/of/path


Ref:

如果要获取当前目录的文件路径,可以使用以下命令:

define("FILE_ROOT", dirname(__FILE__));
然后,当您想要使用它时:

echo FILE_ROOT;

如果在taht之后立即设置变量并调用php脚本,则在同一shell会话中,必须导出环境变量:


当某个变量被导出到环境中时,它被传递到所有子进程的环境中。当php创建一个新的“子流程”时,您必须与其共享“环境”和变量,这是使用export语句时发生的情况。

如果您试图通过web SAPI中的php访问此环境变量,则需要在web服务器的配置中设置环境变量,例如,在
vhost
部分中,使用


...
SetEnv变量\名称变量\值
...

就我而言,这不是我想要做的。但是谢谢你的建议。你是从命令行运行这个PHP脚本吗?不是。我是通过我的web服务器(Apache)运行的。我已经更新了我的问题来澄清这一点。然后您需要为Apache设置环境变量。。。。使用将其添加到vhosts文件或.htaccess文件中;在bash中设置它只会使它从CLII中可用我没有通过CLI运行PHP脚本,很抱歉没有说清楚。我已经更新了我的问题。似乎我需要导出我的路径。看见
<VirtualHost hostname:80>
    ...
    SetEnv VARIABLE_NAME variable_value
    ...
</VirtualHost>