php上的ubuntu proc_open命令错误与python

时间:2014-02-25 16:50:57

标签: php python linux ubuntu ssl

当我尝试在ubuntu 上使用 youtube-dl时,我遇到了这个问题。

  

我正在使用XAMPP for Linux v1.8.3(PHP 5.5.9)


执行后收到的错误:

  

{“status”:0,“errors”:“Traceback(最近一次调用最后一次):文件   导入youtube_dl文件中的“/ usr / bin / youtube-dl”,第3行   \ “/ usr / lib中/ python2.7 / DIST-包/ youtube_dl / _ 初始化 _。PY \”,   第65行,来自.utils import(文件   \“/ usr / lib / python2.7 / dist-packages / youtube_dl / utils.py \”,行   18,在import ssl File \“/ usr / lib / python2.7 / ssl.py \”,第61行,在   import _ssl#如果我们无法导入它,让错误传播   导入错误:   /usr/lib/python2.7/lib-dynload/_ssl.x86_64-linux-gnu.so:icon   GENERAL_NAME_free,版本OPENSSL_1.0.0未在文件中定义   libcrypto.so.1.0.0,链接时间参考

这是我的PHP代码

<?php
    $url = 'https://www.youtube.com/watch?v=xFQFMSNZW08&list=RDV-jLo0Ovems';
    //escapeshellarg
    $string = ('youtube-dl --max-quality 2180 --write-thumbnail -x --audio-format mp3 -c -o "/home/bahaa/%(id)s.%(ext)s" https://www.youtube.com/watch?v=xFQFMSNZW08&list=RDV-jLo0Ovems');

    $descriptorspec = array(
        0 => array("pipe", "r"),  // stdin
        1 => array("pipe", "w"),  // stdout
        2 => array("pipe", "w"),  // stderr
    );

    $process = proc_open($string, $descriptorspec, $pipes);
    $stdout = stream_get_contents($pipes[1]);
    fclose($pipes[1]);
    $stderr = stream_get_contents($pipes[2]);
    fclose($pipes[2]);
    $ret = proc_close($process);
    echo json_encode(
        array(
            'status' => $ret,
            'errors' => str_replace(array('', "\n"), "<br />", $stderr."<hr />"),
            'output' => $stdout,
        )
    );
?>

任何帮助将不胜感激。

0 个答案:

没有答案