使用PHP以编程方式查找wget位置?

时间:2015-01-13 11:58:55

标签: php cron crontab wget

是否可以使用PHP确定wget二进制文件的位置?我试图为我的用户创建一个软编码的wget cron命令。我知道在大多数环境中,wget位置已经包含在PATH中,但是cron并不总是共享相同的环境。为了安全起见,我想使用像/usr/bin/wget这样的绝对路径。

是否有类似于PHP_BINDIR的常量?我不能假设wget与PHP在同一个位置,对吧?还有其他想法吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

这就是为什么我们env /usr/bin,保证在/usr/bin/env wget [options] [url] ,所以你所要做的就是:

wget

如果运行PHP脚本的用户具有执行env的正确权限,将下载的文件写入指定的路径等等,那么你很高兴,但是那个' sa不同的事情

另一方面,因为您已使用 crontab 标记标记了此问题,请确保脚本顶部的hashbang也使用#!/usr/bin/env php <?php //your script here

wget

然后,#!/usr/bin/env php <?php exec('wget --help', $output); var_dump($output); 将是可调用的(再次:如果环境变量和权限检出)简单明了:

array(172) {
  [0]=>
  string(51) "GNU Wget 1.15, a non-interactive network retriever."
  [1]=>
  string(32) "Usage: wget [OPTION]... [URL]..."
  [2]=>
  string(0) ""
  [3]=>
  string(72) "Mandatory arguments to long options are mandatory for short options too."
  ...

应该产生类似的东西:

{{1}}

在我的机器上试过,没有任何问题

答案 1 :(得分:0)

不是php命令,而是unix命令:which

示例:

~ $ which wget
/usr/bin/wget