首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从apache php调用ffmepg而没有完全路径

从apache php调用ffmepg而没有完全路径
EN

Stack Overflow用户
提问于 2015-02-14 05:43:00
回答 1查看 886关注 0票数 1

我需要一个apache /php来识别ffmpeg命令,而不需要指定/usr/local/bin/ffmpeg的整个池。

从命令行调用ffmpeg执行通过web从php调用ffmpeg的程序不执行调用/usr/local/bin/ffmpeg的程序,从php通过web执行程序

原因: php脚本调用youtube-dl (编译程序)并在内部执行ffmpeg。

预先感谢您-尝试了ffmpeg路径:哪个ffmpeg /usr/local/bin/ffmpeg?

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-14 06:08:11

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

代码语言:javascript
复制
sudo echo '$PATH=/usr/local/bin:$PATH' > /etc/profile.d/php_needed.sh

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28512834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档