我使用了搜索 -
我在Windows服务器上有一个共享驱动器
从命令提示符我可以写这个运行youtube-dl的驱动器,但是从PHP脚本 - youtube-dl说permission error ( no permission error on local drive)
如果我以root身份从命令提示符运行包含youtube-dl的PHP脚本,它可以正常工作。
下面是php脚本
echo "Saving $v";
$url = "http://www.youtube.com/watch?v=$v";
$template = '/windowshare/%(id)s.%(ext)s';
$string = ('youtube-dl ' . escapeshellarg($url) . ' -f 22 -o ' .
escapeshellarg($template));
$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' => $stderr,
'url_orginal'=>$url, 'output' => $stdout,
'command' => $string));
答案 0 :(得分:0)
这与php或youtube-dl无关 - 网络服务器正在运行的用户,因为它没有写入目标目录的权限。选择另一个目录或更改权限。例如,以root身份运行sudo chmod a+rw /windowshare
以允许每个人写入目录。