【发布时间】:2020-03-08 10:25:10
【问题描述】:
我已经在 CentOS 中安装了 FFMPeg。它完美地工作。 它在 /usr/bin 目录中。另外,我有 Plesk 18.0.20 附带的 PHP 7.2.24。
我想在 PHP 脚本中使用 FFMPeg,但该脚本找不到 FFMpeg 的可执行文件。我试过给出确切的路线(/usr/bin/ffmpeg),但没有用。
这是一个生产服务器。相同的脚本,在我的开发服务器 (macOS) 中运行良好。
我尝试使用:
var_dump(getenv('PATH'));
var_dump(exec('which ffmpeg'));
var_dump(ini_get('open_basedir'));
var_dump(is_file(exec('which ffmpeg')));
var_dump(is_executable(exec('which ffmpeg')));
它还给我:
string(49) "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
string(0) ""
string(44) "/var/www/vhosts/name-of-the-domain.com/:/tmp/"
bool(false)
bool(false)
NULL
¿会发生什么?
我注意到一个非常奇怪的事情是我无法通过 php 访问任何命令: 我尝试将它与 echo 一起使用
var_dump(exec('which echo'));
var_dump(is_file(exec('which echo')));
var_dump(is_executable(exec('which echo')));
它还给我:
string(0) ""
bool(false)
bool(false)
NULL
而且权限是对的:
[root@vps bin]# ls -lha echo
-rwxr-xr-x 1 root root 33K ago 20 08:25 echo
[root@vps bin]# ls -lha ffmpeg
-rwxr-xr-x 1 root root 217K abr 4 2019 ffmpeg
但是如果我做一个
var_dump(exec('echo "HELLO"'))
它返回我
string(5) "HELLO"
【问题讨论】:
-
“我已经尝试给出确切的路线(/usr/bin/ffmpeg),但不起作用。” 究竟发生了什么?有什么错误?
-
我正在使用 PHP-FFMPeg (github.com/PHP-FFMpeg/PHP-FFMpeg) 并返回此错误:“FFMpeg\Exception\ExecutableNotFoundException: Unable to load FFMpeg”
标签: php linux ffmpeg centos ffmpeg-php