命令通过终端工作正常,但不是 shell_exec php

问题描述:

遇到了一个奇怪的问题,我现在用 Lion 在我的 mac osx 上安装了 wav2png 并且在使用终端时工作正常没有问题但是当我尝试使用 shell_exec 和 php 运行它时,如下所示

Got a weird issue i have installed wav2png on my mac osx with lion now and works fine when using terminal no problem but when i try to run it using shell_exec with php like below

$wav2png = shell_exec("cd {$targetDir} && /usr/bin/wav2png --foreground-color=000000ff --background-color=00000000 -o example2.png f86150f88d.wav 2>&1");
echo "<pre>" . $wav2png . "</pre>";

我得到输出

dyld: Library not loaded: /opt/local/lib/libpng15.15.dylib
  Referenced from: /usr/bin/wav2png
  Reason: Incompatible library version: wav2png requires version 28.0.0 or later, but libpng15.15.dylib provides version 23.0.0

找不到更新 libpng 的方法???

Cant find a way to update libpng???

有什么建议为什么它可以通过终端正常工作而不是 shell_exec php?

Any suggestions why it will work fine through terminal but not shell_exec php?

我认为问题出在 LD_LIBRARY_PATH 和/或一般的库路径中.

I think problem is in LD_LIBRARY_PATH and/or with library paths in general.

进入 shell 并输入

Go to shell and type

echo $LD_LIBRARY_PATH

ldd /usr/bin/wav2png

从 php 脚本中执行完全相同的操作(确保从这些命令中获取输出)并进行比较,我很确定您会找到答案.

Do exact same from php script (be sure to grab output from these commands) and compare, I'm pretty sure you find the answer.