【问题标题】:shell_exec() not working on php scriptshell_exec() 不适用于 php 脚本
【发布时间】:2018-04-17 14:14:43
【问题描述】:

我想运行shell_exec('youtube-dl -j ' . $url);,但它不适用于我的 PHP 脚本并返回空白数组。当我尝试通过 cmd 手动运行时,它工作正常。

我尝试了 localhost 和我的服务器,但两者都不起作用......我已经尝试了许多解决方案并实施它,但我仍然不能。

这是我的 PHP 脚本

$url = clearString($this->security->xss_clean($this->input->post("url")));
$data['url'] = $url; 
if(filter_var($url, FILTER_VALIDATE_URL)) {
    $domain = strtolower(getDomainName($url)); 
    $source = $this->DefaultModel->getSource($domain);
    $data['source'] = $domain;
    $cacheVar = "mediaInfo-".md5($url);
    if(!$mediaInfo = $this->cache->get($cacheVar)) {
        $mediaInfo = shell_exec('youtube-dl -j '.$url);
        $this->cache->save($cacheVar,$mediaInfo,$source['linkCacheTime']);
    }
}

当我执行 $output = shell_exec("set"); 它的返回输出时,我想在我的 xampp 服务器 loaclhost 上运行 shell_exec('youtube-dl -j '.$url); 命令。

【问题讨论】:

  • 尝试捕获标准错误。这可能会显示一些关于正在发生的事情的信息。 $mediaInfo = shell_exec('2>&1 youtube-dl -j '.$url)
  • 当我运行 shell_exec('2>&1 youtube-dl -j '.$url) 时返回:'youtube-dl' 不被识别为内部或外部命令、可运行程序或批处理文件.
  • 我知道如何使这项工作,但在 Linux 中不是 Windows。

标签: php cmd shell-exec youtube-dl


【解决方案1】:

解决上述问题的步骤。

  1. 在 public_html 目录中上传 youtube-dl。
  2. 提供如下所示的完整路径

shell_exec('/home/{path}/public_html/youtube-dl -j
    '.$url);

【讨论】:

    猜你喜欢
    • 2015-09-05
    • 2016-03-08
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    相关资源
    最近更新 更多