在PHP脚本中添加$ PATH环境变量

And*_*rew 6 php path environment-variables

我有一个PHP脚本wget用于下载一些图像.但是,wget使用Homebrew安装,因此运行PHP脚本的用户无法使用它.当我运行时,exec('echo $PATH')我没有得到/usr/local/bin包含的目录wget.如何添加/usr/local/bin到环境路径以便PHP脚本可以找到wget

更新:我忘了提到我无法指定确切位置的原因是因为位置可能会有所不同,具体取决于运行此脚本的机器.

解:

这就是我最终得到的结果:

//help PHP find wget since it may be in /usr/local/bin
putenv('PATH=' . getenv('PATH') . PATH_SEPARATOR . '/usr/local/bin');
if (exec('which wget') == null) {
    throw new Exception('Could not find wget, so image could not be downloaded.');
}

//now we know wget is available, so download the image
exec('wget ...');
Run Code Online (Sandbox Code Playgroud)

Jer*_*man 9

按优先顺序排列:

  1. 您可以/usr/local/bin/wget在调用子进程时指定完整路径.这可能是最简单和最好的方法.
  2. 您可以使用proc_open而不是exec,它允许您将环境变量作为参数传递.
  3. 您可以使用它putenv来更改当前环境(将由子进程继承).