【问题标题】:Compiling php extensions for MAMP为 MAMP 编译 php 扩展
【发布时间】:2016-03-22 23:27:02
【问题描述】:

我需要在 MAMP 3.5 上为 PHP 5.6.10 安装几个 PHP 扩展,例如 memcache 和 geoip。

我正在做的是运行phpize:

/Applications/MAMP/bin/php/php5.6.10/bin/phpize

哪些输出:

配置:

PHP API 版本:20131106

Zend 模块 API 编号:20131226

Zend Extension API 编号:220131226

然后配置:

/configure --with-php-config=/Applications/MAMP/bin/php/php5.6.10/bin/php-config

然后,尝试使用 make 构建。这是我得到这个错误的地方:

/Applications/MAMP/bin/php/php5.6.10/include/php/Zend/zend.h:51:11: fatal error: 'zend_config.h' file not found

我从 php.net 下载了 include/php 文件夹的内容,版本 5.6.10(找到 here)。

我觉得我现在离解决这个问题更近了,但我对这个错误感到不知所措。我做错了什么,所以显然从 php.net 新下载的 php 缺少文件?

谢谢。

【问题讨论】:

    标签: php macos php-extension phpize


    【解决方案1】:

    我最终使用 pecl 而不是手动编译扩展。

    make 步骤中缺少的标头是我没有在 php 文件夹上运行 ./configure - 我偶然遇到了这一步,真的。

    之后,我所要做的就是运行:

    sudo /Applications/MAMP/bin/php/php5.6.10/bin/pecl install memcache
    

    一切都在轮子上运转。

    在尝试 pecl 之前,我尝试按照我在帖子中所做的那样运行 make,并且扩展编译成功,但是我的 php 和扩展之间的版本不匹配。我之前尝试过 pecl 没有成功,但我真的不知道自上次尝试以来我的配置发生了什么变化。


    不管怎样,我写了一个gist 来完成这个工作,以防万一有人遇到同样的问题并且像我一样是这个主题的完整初学者。

    【讨论】:

      猜你喜欢
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多