【问题标题】:Installing imagick for PHP on OSX El Capitan: issue with included pcre.h file在 OSX El Capitan 上为 PHP 安装 imagick:包含 pcre.h 文件的问题
【发布时间】:2016-03-24 16:20:44
【问题描述】:

我正在尝试为 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 的 privs。

# 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。我认为我的问题略有不同,而且我在堆栈交换方面太菜鸟了,无法制作 cmets 并提出问题(我当然无法发布答案:))

顺便说一下,这是我的 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

【问题讨论】:

    标签: php macos imagemagick


    【解决方案1】:

    您真正的问题是 Mac SIP(​​系统完整性保护)。启用 SIP 后,您无法向 /usr 写入任何内容(/usr/local 除外)。禁用它并执行符号链接,然后尝试使用 phpize 安装 Imagick 包装器。确保安装后重新启用 SIP。

    禁用 SIP

    1) 重新启动 Mac 并在听到启动提示音后同时按住 Command + R 键,这会将 OS X 启动到恢复模式。

    2)当“OS X Utilities”屏幕出现时,下拉屏幕顶部的“Utilities”菜单,然后选择“Terminal”

    3)在终端输入以下命令然后回车:

    csrutil disable; reboot

    【讨论】:

      猜你喜欢
      • 2016-07-06
      • 2016-02-02
      • 2017-01-14
      • 1970-01-01
      • 2016-01-13
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多