PHP shell_exec命令仅适用于命令行

时间:2018-04-07 19:50:43

标签: php shell-exec

我正在尝试创建一个Youtube下载器,其灵感来自https://apple.stackexchange.com/questions/321650/downloading-youtube-music-videos/321668?noredirect=1#comment409948_321668的Nimesh Neema答案。它使用youtube-dl命令。

youtube.php

<?php
ini_set("display_errors", 1);
ini_set("track_errors", 1);
ini_set("html_errors", 1);
error_reporting(E_ALL);
$command = '/usr/local/bin/youtube-dl https://www.youtube.com/watch?v=b91ovTKCZGU --no-check-certificate -f mp4 -o     /Library/WebServer/Documents/files/test.mp4';
$command1 = 'sleep 2; echo "hi"';
shell_exec($command);
echo '<pre>';
passthru($command);
echo '</pre>';
?>

当通过网络浏览器被指控时,没有任何反应。但如果我在终端中运行php ./youtube.php,我会得到以下内容并创建视频:

<pre>[youtube] b91ovTKCZGU: Downloading webpage
[youtube] b91ovTKCZGU: Downloading video info webpage
[youtube] b91ovTKCZGU: Extracting video information
[download] /Library/WebServer/Documents/files/test.mp4 has already been    downloaded
[download] 100% of 10.09MiB

如果这不够奇怪。如果我将要执行的命令更改为/usr/bin/touch /Library/WebServer/Documents/files/test.mp4,即使通过Web浏览器访问,也会创建该文件。

我的问题:当通过浏览器访问并成功创建视频时,如何让PHP脚本执行命令?

如果您要进行downvote请在评论中解释原因,以便我可以根据需要编辑和调整问题

更新:我将脚本转移到了我的服务器。它跑得很好。这似乎与我的配置有关。

0 个答案:

没有答案
相关问题