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

时间:2016-02-09 13:13:09

标签: php bash ubuntu environment-variables

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

MYPATH=~/some/kind/of/path

我已经确认它正在使用:

echo $MYPATH

我的问题:

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

参考:http://php.net/manual/en/function.getenv.php

3 个答案:

答案 0 :(得分:3)

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

enter image description here

当某个变量导出到环境时,它会被传递到所有后代进程的环境中。因为php创建了一个新的"子进程"你必须分享"环境"和vars一起使用,这就是使用export语句时会发生的事情。

答案 1 :(得分:0)

如果您尝试通过Web SAPI中的PHP访问此环境变量,则需要在Web服务器的配置中设置环境变量,例如:使用SetEnv

vhost部分中
<VirtualHost hostname:80>
    ...
    SetEnv VARIABLE_NAME variable_value
    ...
</VirtualHost>

答案 2 :(得分:-1)

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

define("FILE_ROOT", dirname(__FILE__));

然后当你想要使用它时:

echo FILE_ROOT;