当前位置: 首页 > 知识库问答 >
问题:

在没有完整路径的情况下从apache php调用ffmepg

爱海
2023-03-14

我需要一个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个答案

丁翊歌
2023-03-14

PHP使用默认的配置文件来执行带有反向标记/shell_exec的命令。它显然不包括$PATH中的/usr/local/bin。要解决这个问题,您可以显式地将/usr/local/bin添加到默认路径:

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

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

 类似资料:
  • 我安装了testNG的新版本,并测试了我在web上找到的所有东西,但没有任何工作。我不能再做我的测试了。 createSingleOrder_bondspage.java createSingleOrder_Bondstest.java 当我将testng.xml作为“testng套件”运行时 “启动Test2 tap_testng.xml”期间出现内部错误。java.lang.NullPoint

  • 在具有父子指针的通用树结构中,是否可以在不遍历完整树的情况下遍历叶节点?例如,从最左边的叶节点开始。想法是在深树上进行优化。

  • 问题内容: 我在Go中创建了Direct3D9包装器,该包装器使用CGo与C中的COM对象进行接口。 我想摆脱Windows下对C编译器的依赖,因此用户不必安装MinGW或Cygwin即可使用Go中的DirectX。 问题在于d3d9.dll不会公开C函数,而是使用COM。加载DLL(带有)后,可以直接调用的唯一函数是。这将返回一个COM对象,该对象将所有功能公开为方法。 如何在没有CGo的纯Go

  • 问题内容: 给定完整路径,如何在Python 3.4中加载Python模块? 类似的问题如何在给定完整路径的情况下导入模块?涵盖了3.4之前的Python版本,但是得出的结论是,对于给出的答案,Python 3.4的支持已被弃用,因此赞赏所有针对Python 3.4的解决方案。 请注意,此问题与“导入任意python”源文件不是重复的。(Python 3.3+),因为对此的答案也使用了Python

  • 我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?

  • 我在用 Linux 编写的 CUDA 代码中使用了一个库(该库称为 cublas),我可以使用 nvcc 成功编译我的代码,但是当我运行代码时出现此错误: 加载共享库时出错:libcublas.so.7.5:无法打开共享对象文件:没有这样的文件或目录 我发现此链接是一种解决方案,建议运行一些命令以解决问题。基于此链接的一种解决方案是运行以下命令: export LD_LIBRARY_PATH=$L