从没有完整路径的apache php调用ffmpeg

时间:2015-02-14 05:43:00

标签: php apache ffmpeg youtube-dl

我需要一个apache / php来识别ffmpeg命令而不指定/ usr / local / bin / ffmpeg的完整浴缸

从命令行调用ffmpeg执行程序 通过web从php调用ffmpeg不会执行该程序 通过web从php调用/ usr / local / bin / ffmpeg确实执行程序

为什么: php脚本调用youtube-dl(已编译的程序)并在内部执行ffmpeg

提前谢谢 - 试过ffmpeg路径:     哪个ffmpeg     的/ usr / local / bin中/ ffmpeg的

echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin


#php code for testing:
$output = shell_exec('/usr/local/bin/ffmpeg 2>&1');
echo "shell exec /usr/local/bin/ffmpeg <pre>$output</pre>";
#Response:
ffmpeg version 2.5.3 Copyright #(good)

#Second php code for testing:
$output = shell_exec('ffmpeg 2>&1');
echo "shell exec <pre>$output</pre>";
#Response:
sh: ffmpeg: command not found #(bad)

1 个答案:

答案 0 :(得分:1)

PHP使用默认profile来执行backticks / shell_exec的命令。它显然不包含/usr/local/bin中的$PATH。要解决此问题,您可以将/usr/local/bin明确添加到默认路径:

sudo echo '$PATH=/usr/local/bin:$PATH' > /etc/profile.d/php_needed.sh

在现代系统中,/etc/profile.d文件夹的全部内容将包含在配置文件中。