实际上,我对php还很陌生。所以事情是这样的: 我想为著名的youtube dl制作一个简单的web shell,所以我制作了一个简单的网页和一个简单的php页面,尝试使用php来执行youtube dl并将所有输出显示到浏览器。在
我尝试过command
和escapeshellcmd(),它们都可以从youtube dl中输出最初几行不断更新的输出(它们可以很好地与其他命令如“ls”配合使用),但似乎当它得到第一行时,python脚本就会停止,不再更新,我的服务器上也没有下载的视频文件。在
顺便说一句,都是在Ubuntu 14 LTS上。在
到目前为止,我已经试过了:
<?php
$command = shell_exec('youtube-dl https://www.youtube.com/watch?v=z456k6yBeo0');
echo "<pre>$command</pre>";
?>
以及
^{pr2}$以及
<?php
$command = escapeshellcmd('youtube-dl https://www.youtube.co/watch?v=z456k6yBeo0');
$output = shell_exec($command);
echo $output;
?>
它们都能很好地与“ls”配合使用,但与youtube dl的配合却不太好
试试^{} function :
你问题中的这个例子对我很有用:
你的PHP版本是什么?我的是5.5.9。在
您也可以像这样使用proc\u open(我们可能在这里遗漏了错误,所以请尝试更新版本):
^{pr2}$您还可以使用exec,它将显示退出状态:
所以我设法解决了这个问题。@zahyur是对的,这是关于许可的问题。由于我习惯使用root来管理我的服务器,所以当我从shell执行命令时不会有任何问题。但是服务器需要额外的权限才能执行命令,以便在目录中写入内容。在
解决方案是建立一个新目录并赋予它写访问权限,在该目录中执行命令,就不会出现问题。在
相关问题 更多 >
编程相关推荐