【问题标题】:libpng16.16.dylib load error when executing PHP CLI with "exec" from PHP file使用 PHP 文件中的“exec”执行 PHP CLI 时出现 libpng16.16.dylib 加载错误
【发布时间】:2015-01-31 01:24:13
【问题描述】:

我在 Mac OS X Yosemite 上运行 PHP 5.5。 PHP 5.5 随 Homebrew 一起安装。

我有一个必须异步执行的 .php 脚本(来自 CLI)。如果我从终端执行它,它工作正常。但是,如果我在我的 PHP 应用程序中执行它,它就不起作用。

启动脚本(由 Apache 运行)的代码是:

// 1.- Alter path so that Homebrew PHP is launched
putenv("PATH=/usr/local/bin:" . getenv("PATH"));

// 2.- Exec PHP script in background
exec("php /path/to/my/file/script.php > /dev/null &");

我收到以下错误:

Library not loaded: /usr/local/lib/libpng16.16.dylib
  Referenced from: /usr/local/bin/php
  Reason: no suitable image found.  Did find:
    /usr/local/lib/libpng16.16.dylib: stat() failed with errno=13
    /usr/local/lib/libpng16.16.dylib: stat() failed with errno=13

有什么线索吗?

我已经在dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib with anything php related 尝试过解决方案,但没有成功

【问题讨论】:

  • 这很可能是某种权限错误。
  • 需要哪些权限? libpng16.16.dylib 权限是 r--r--r--,所以我看不出从终端执行和在 PHP 文件中执行之间的区别(但显然,肯定有区别)。
  • /usr/local/lib的权限是什么?
  • 权限为rwx------ (!!!) 谢谢!我一定是瞎子什么的,:-) 我将 /usr/local/lib 权限更改为 rwxr-xr-x 并且像魅力一样工作
  • 顺便说一句,如果您为此创建了答案,我很乐意投票并接受它。

标签: php macos homebrew libpng


【解决方案1】:

stat() failed with errno=13 表示存在权限错误。 .dylib 文件应该具有读取权限,并且它包含的目录也应该设置可执行 (x) 位。 (我认为也应该设置 read [r] 位,但我不是 100% 确定。)

【讨论】:

  • /usr/local/bin 中的权限为 rwx------。我将它们更改为 rwxr-xr-x 并像魅力一样工作。
猜你喜欢
  • 2012-03-28
  • 2023-03-26
  • 2011-07-05
  • 2016-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-13
  • 2023-03-24
相关资源
最近更新 更多