【发布时间】:2012-02-09 13:10:03
【问题描述】:
这是我在 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()。
【问题讨论】:
标签: php bash shell environment setenv