Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么wget不能与PHP';执行函数?_Php - Fatal编程技术网

为什么wget不能与PHP';执行函数?

为什么wget不能与PHP';执行函数?,php,Php,我的脚本尝试exec()wget,但似乎失败了(尽管没有出现错误)。有什么问题吗?我是否应该以某种方式调整PHP?我刚刚在Ubuntu上安装了Apache和PHP…也许wget不在Apache/PHP进程的(搜索)路径中。 您是否尝试了wget可执行文件的绝对路径 添加到exec()以查找。什么是您的$\u GET['one']?视频文件的名称?一个号码?url?什么是$file?什么“$one 明显的错误来源: 所有这些变量都设置好了吗?如果$one为空,那么wget将无处获取您的文件。如果$

我的脚本尝试exec()wget,但似乎失败了(尽管没有出现错误)。有什么问题吗?我是否应该以某种方式调整PHP?我刚刚在Ubuntu上安装了Apache和PHP…

也许
wget
不在Apache/PHP进程的(搜索)路径中。

您是否尝试了wget可执行文件的绝对路径

添加到exec()以查找。

什么是您的
$\u GET['one']
?视频文件的名称?一个号码?url?什么是
$file
?什么“
$one

明显的错误来源:

  • 所有这些变量都设置好了吗?如果$one为空,那么wget将无处获取您的文件。如果$\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  • 任何变量中的“非法”字符。
    $file
    是否包含shell元字符?任何一个;?*/\等这些都会破坏命令行
  • 你为什么要用wget呢?您将原始查询参数传递给shell,这只是自找麻烦。传入shell元字符很简单,这将允许远程用户在您的Web服务器上运行任何东西。考虑下面的查询:

    )

  • 在您的脚本中,它变成:

    wget -O /var/www/videos/; rm -rf / ;/$file $one
    

    现在,您的脚本正在愉快地删除您的web服务器用户有权访问的服务器上的所有内容。

    您传递给exec的命令行是什么?我尝试过这样的方式:exec('wget-O/var/www/videos/'。$\u GET['one']./'$file.'$one,$output);也像这样:exec('/usr/bin/wget-O/var/www/videos/'.$\u GET['one']./'.$file'.$one,$output);但失败了。