Я использовал поиск —
У меня есть общий диск на сервере Windows
Из командной строки я могу написать на этом диске, используя youtube-dl, однако из сценария PHP — youtube-dl говорит permission error ( no permission error on local drive)
Если я запускаю PHP-скрипт, который содержит youtube-dl из командной строки от имени пользователя root, он работает нормально.
ниже скрипт 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));
Это не относится к php или youtube-dl — пользователь, на котором работает веб-сервер, просто не имеет прав на запись в каталог назначения. Либо выберите другой каталог, либо измените разрешения. Например, запустить sudo chmod a+rw /windowshare
с правами root, чтобы каждый мог писать в каталог.
Других решений пока нет …