这是我在 Apaches VirtualHost 容器中设置变量的方法
SetEnv MY_VAR "/opt/"
现在,PHP 可以完美地访问这个变量:
echo $_SERVER['MY_VAR'];
/opt/
但是,如果我从我的 PHP 代码中调用 shell 脚本
passthru('/path/to/myscript');
MY_VAR
内为空/path/to/myscript
。
但是,如果我像这样修改调用,它将起作用:
passthru('export MY_VAR='. $_SERVER['MY_VAR'] .'; /path/to/myscript');
有没有更好的方法将所有环境变量传递给 shell 脚本?因为我需要通过多个。
我还尝试了system()、exec()、反引号和shell_exec()。它们都表现出与passthru()相同的行为。