使用PHP在Linux中创建环境变量

使用PHP在Linux中创建环境变量,php,linux,Php,Linux,我想使用PHP在LINUX中创建用户定义的环境变量。 我使用putenv()尝试了它,但它只会持续到当前请求 我还尝试使用backticks执行它。 作为 VARNAME=“777”; 导出VARNAME 但它不会在打印printenv时显示变量和值。 如何使用php创建环境变量 如何执行 VARNAME=“777”;导出变量名 使用PHP?您可以尝试exec(“export VARNAME=777”) 但是 我不相信在apache的请求之间存在持久性环境。要为特定命令设置环境,您可能需要做的一

我想使用PHP在LINUX中创建用户定义的环境变量。 我使用putenv()尝试了它,但它只会持续到当前请求

我还尝试使用backticks执行它。 作为
VARNAME=“777”
导出VARNAME

但它不会在打印printenv时显示变量和值。 如何使用php创建环境变量

如何执行
VARNAME=“777”;导出变量名 使用PHP?

您可以尝试
exec(“export VARNAME=777”)

但是

我不相信在apache的请求之间存在持久性环境。要为特定命令设置环境,您可能需要做的一件事是在apache可以访问的地方设置一个文本文件,并用您的环境变量填充它,每行一个

VARNAME=777
MY_VAR=COOL
然后创建一个类似于此的函数,并在运行环境中运行

function runWithEnvironment($cmd, $envronmentFile, &$output){
    $env = file ($environmentFile, FILE_IGNORE_NEW_LINES);
    foreach($env as $line){
        putenv($line);
    }
    $ret=null;
    exec($cmd, $output, $ret);
    return $ret;
}

这应该是在执行命令之前设置环境的过程

我试过了,但没用。它显示了它以前的值。还有其他方法吗?我不知道apache是在一个真正的shell中运行的,所以我认为持久性环境变量是不存在的。。。在不依赖持久性环境的情况下,可能会有一个可行的方法来实现您的目标。我应该能够使用printenv查找变量。(也就是说,env变量应该一直存在于系统中,直到用户将其取消设置为止),只要php是在同一请求中调用perl脚本的那个,那么它就应该工作。