2014-12-02 60 views
0

我在Mac OS X Yosemite上运行PHP 5.5。 PHP 5.5与Homebrew一起安装。libpng16.16.dylib在PHP文件中执行PHP“exec”时加载错误

我有一个.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的解决方案,没有运气

+0

这很可能是某种权限错误。 – mipadi 2014-12-02 19:38:26

+0

需要哪些权限? libpng16.16.dylib权限是r - r - r--,所以我看不到从终端和PHP文件内执行的区别(尽管显然必须有区别)。 – 2014-12-02 23:41:05

+1

'/ usr/local/lib'有什么权限? – mipadi 2014-12-03 00:16:48

回答

2

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

+1

'/ usr/local/bin'中的权限是'rwx ------'。我将它们改为'rwxr-xr-x'并且像魅力一样工作。 – 2014-12-03 22:24:43