无法通过getenv获取新的环境变量

时间:2019-10-24 16:24:09

标签: php environment-variables

我有一个运行PHP的Linux VM(Linux Lite 4)。 我在终端中添加了一个自定义环境变量,

export MYVAR=bar

,然后可以在本地看到它,echo $MYVAR返回bar

问题是:当我通过ssh连接到此服务器并尝试通过运行服务器上的简单PHP脚本来查询变量时

<?php
var_dump(getenv('MYVAR'));

我得到bool(false)。成功查询其他默认env变量。

如果我做错了事,请随时纠正我。

1 个答案:

答案 0 :(得分:3)

UNIX中的环境变量不是全局的。它们是每个过程专用的。当某个进程(例如您的交互式外壳程序)启动新进程时,通常会向新进程提供其环境变量的副本。因此,当您在交互式外壳中定义新的环境变量时,它对已经运行的进程(例如Web服务器)是不可见的。对于独立于定义env var的外壳启动的进程(例如php程序)也不可见。

如果不了解您的配置的更多信息,就不可能提供好的建议。但是考虑到您所写的内容,将export MYVAR=bar放在您的〜/ .bashrc 中可能就足够了(假设bash是您的登录shell)。