【发布时间】: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并且像魅力一样工作 -
顺便说一句,如果您为此创建了答案,我很乐意投票并接受它。