我正在尝试为PHP安装imagick包装器。我正在使用OSX,捆绑的PHP版本,并使用MacPorts安装了Image Magick。 当我尝试安装Imagick包装器时,我完成了phpize和./configure步骤,但编译失败了。
在终端中,我运行' make'命令,一切都很愉快,直到我收到这个致命的错误:
In file included from /usr/local/imagick-3.4.1/imagick.c:37:
In file included from /usr/include/php/ext/spl/spl_iterators.h:27:
/usr/include/php/ext/pcre/php_pcre.h:29:10: fatal error: 'pcre.h' file not found
#include "pcre.h"**
我试图创建一个使用MacPorts安装的pcre.h文件的符号链接,但是El Cap没有抛出"操作不允许"当我尝试并且我知道这与El Cap中新的有限超级用户权限有关时会出现错误。
# tried both:
sudo ln -s /opt/local/include/pcre.h /usr/include/php/ext/pcre
sudo ln -s /opt/local/include/pcre.h /usr/include/
任何人都可以建议我可以获得的方式" /usr/include/php/ext/pcre/php_pcre.h"找到文件" /opt/local/include/pcre.h"?
我知道我可以通过MacPorts安装PHP,这可能最终成为"最简单的"解决方案但我宁愿在通过MacPorts安装PHP之前继续使用捆绑版本的PHP。
由于我刚发现类似的问题here,所以请提前致谢并道歉。我认为我的问题略有不同,我在堆栈交换上做了太多的菜鸟做评论和提出问题(我当然无法发表回答:))
顺便提一下,我的shell命令序列是:
cd /usr/local/
sudo curl -O https://pecl.php.net/get/imagick-3.4.1.tgz
sudo tar zxf imagick-3.4.1.tgz
cd imagick-3.4.1
sudo phpize
sudo ./configure --with-imagick=/opt/local
sudo make // fail with include error
答案 0 :(得分:3)
您真正的问题是Mac SIP(系统完整性保护)。启用SIP后,您无法向/ usr写入任何内容(/ usr / local除外)。禁用它并执行符号链接,然后尝试使用phpize安装Imagick包装器。确保在安装后重新启用SIP。
禁用SIP
1)重新启动Mac并在听到启动响铃后同时按住Command + R键,这将启动OS X进入恢复模式。
2)当出现“OS X Utilities”屏幕时,请按下屏幕顶部的“Utilities”菜单,然后选择“Terminal”
3)在终端中输入以下命令,然后点击return:
csrutil disable; reboot