完全 *nix n00b,所以我提前道歉。我通过 homebrew 安装了 ffmpeg,现在我想从 PHP 脚本中调用它shell_exec()
,例如ffmpeg -v
。但什么也没发生。从终端运行正常。
Apache 以 的身份执行_www
,因此我认为它没有足够的权限来查找 中的任何内容/usr/local/bin
。因此,我在 中放置了一个指向 ffmpeg 二进制文件的符号链接/usr/bin
。什么也没有。我可以运行,which ffmpeg
但只给了我/usr/bin/ffmpeg
。调用ffmpeg -version
什么也没有输出。
我检查了 ffmpeg 上的权限是否设置为 755,但没有任何效果。有什么想法吗?
答案1
答案2
第一步是尝试通过调用 sudo -u _www -H [command] 以 _www-user 身份运行命令
这将以 _www-User 的身份运行 [命令],以便您可以看到终端上发生的情况。
但可能有一个更简单的解决方案。_www-User 的 PATH 变量中可能根本没有 /usr/local/bin。因此,您必须在脚本中调用 /usr/local/bin/ffmpeg 而不是 ffmpeg,一切运行正常。
答案3
请记住,ffmpeg 不会输出到stdout
。如果调用它,则需要捕获stderr
或重定向它。
因此,运行:
ffmpeg -v 2&>1