【问题标题】:command works fine through terminal but not shell_exec php命令可以通过终端正常工作,但不能通过 shell_exec php
【发布时间】:2012-09-05 17:26:35
【问题描述】:

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

$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的方法???

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

【问题讨论】:

  • /opt/local/lib/libpng15.15.dylib 确实存在吗?
  • hi dbf yes libpng15.15.dylib 存在检查

标签: php terminal shell-exec


【解决方案1】:

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

转到 shell 并输入

echo $LD_LIBRARY_PATH

ldd /usr/bin/wav2png

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

【讨论】:

  • 您好,感谢您的回复,如果我在终端中键入 echo $LD_LIBRARY_PATH 我得到一个空输出,如果我在终端中键入 ldd /usr/bin/wav2png 我得到 -bash: ldd: command not found?
  • @user1503606 : 请分享操作系统信息 (uname -a ; cat /etc/*release*)
  • Darwin Mac-mini.local 11.4.0 达尔文内核版本 11.4.0:2012 年 4 月 9 日星期一 19:32:15 PDT;根:xnu-1699.26.8~1/RELEASE_X86_64 x86_64
  • aaah,恐怕我不能直接帮助你(我只是 Linux/Solaris 人),你需要检查你的操作系统文档谁来解决库链接问题。也许这可以帮助你:noah.org/wiki/List_shared_libraries 或这个:noktec.be/archives/1104。请告诉我你得到了什么。
  • 没问题,感谢您与开发人员联系,看看他是否可以提供一些启示
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 2012-05-28
相关资源
最近更新 更多