PHP Shell执行ffmpeg不读取Bash配置文件


PHP Shell Excution of ffmpeg Not Reading Bash Profile

我知道这是一个奇怪的问题,可能是非常具体的,但我最近在一个共享主机服务上安装了ffmpeg。虽然我可以从SSH控制台执行所有任务,但在PHP中进行完全相同的调用时,我得到了这个错误。

加载共享库时出现错误:libavdevice.so。无法打开共享对象文件:没有文件或目录

它在PuTTY中做同样的事情,直到我用这行更新~/.bash_profile:

export LD_LIBRARY_PATH=/home/searay330/ffmpeg/lib

PHP不使用~/.bash_profile,还是有不同的文件需要更新?关于这个话题的任何信息都非常感谢,谢谢。

您需要将其放在.bashrc中。.bash_profile仅在使用交互式登录shell时读取,但.bashrc在Bash以交互方式启动但不是登录shell时读取。更多信息请看这里。因此,您不能真正使用.bashrc.bash_profile。您需要在调用shell_exec()之前在PHP中设置环境变量。

<?php
putenv('LD_LIBRARY_PATH=/home/searay330/ffmpeg/lib');
shell_exec('...');