我会解释我正在尝试做什么,因为有人可能会采用一种更好,更完全不同的方法。
我正在尝试安装FFMPEG,但不仅仅是安装它,我正在制作一个安装了一些PHP脚本的自动安装程序,如果还没有安装,还会安装FFMPEG。
我找不到任何可以安装FFMPEG的自动PHP脚本,所以我猜这比我想象的更难。
我有3个选项可以做到这一点:
那么,我怎么能:
使用PHP中的YUM / APT-GET并设置sudo
OR
编译后为FFMPEG安装编解码器。使用我发现的预编译二进制文件,如果有可能,那么我可以安装丢失的编解码器(我认为是lame mp3。也许其他人也是如此)。或者编解码器需要构建到二进制文件中。
我认为首选的选项是使用YUM / APT-GET,因为我的目标主要是Centos 5,也可能是Ubuntu。
答案 0 :(得分:0)
sudo in php会容易得多。除此之外,您还可以使用“expect”等待相应的提示。如果有一种方法可以使用内置的exec()或system(),那我就不知道了。
答案 1 :(得分:0)
如果您最终从源代码编译或从repo安装,您可以通过此项目处理安装过程,该项目允许PHP获取真正的Bash shell并与之交互。在此处获取:https://github.com/merlinthemagic/MTS
下载后,您只需使用以下代码:
$shell = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
$return1 = $shell->exeCmd('yum -y install FFMPEG');
//the return will be a string containing the return of the command
echo $return1;
当需要接受GPG密钥或依赖项存在冲突时,您需要处理边缘情况。但是该项目允许您编写所有Bash交互的脚本。