我目前正在尝试通过PECL为PHP构建扩展。
/Applications/MAMP/bin/php/php5.4.39/bin/pecl install memcached
我正在使用OS X和MAMP,所以我收到了这个错误。
/Applications/MAMP/bin/php/php5.4.39/include/php/Zend/zend.h:51:11:致命错误:找不到'zend_config.h'文件
由于MAMP在没有任何PHP头文件的情况下发货,我必须手动获取它们。 所以我去了https://github.com/php/php-src/releases/tag/php-5.4.39并下载了源代码。
我将其解压缩到/Applications/MAMP/bin/php/php5.4.39/include/
并将文件夹php-5php-src-PHP-5.4.39
文件夹重命名为php
,然后尝试更改为/Applications/MAMP/bin/php/php5.4.39/include/php
文件夹。
我尝试使用./configure
运行配置脚本。
但它没有找到。
我只找到了一个configure.ln
,正如我被告知的那样是autoconf。所以我跑了autoconf
。 Autoconf遇到了这样的错误:
configure.in:2:错误:可能是未定义的宏:dnl
我很困惑。我发现脚本./buildconf
告诉我以下内容:
您不应该在发布包中运行buildconf。 使用buildconf --force覆盖此检查。
我强迫它,我们去了:./configure
脚本终于存在了。
我检查了php.net网站上的相同版本,因为我觉得上次我这样做时并没有出现这种混乱。
所以我下载了这个:http://php.net/get/php-5.4.39.tar.bz2/from/a/mirror
它有./configure
脚本。
现在我的问题:为什么php.net上的关系和GitHub上的版本有所不同?
如果没有使用./buildconf
脚本,我应该如何在不使用./configure
的情况下获取./buildconf
脚本,这显然不会在发布版本中使用?
谢谢:)
答案 0 :(得分:1)
GitHub包含PHP开发版本的镜像。开发版本通常没有configure
脚本,因为每次任何autotools输入文件发生更改时都必须重新生成。这些文件在开发阶段往往会发生变化。
您可以阅读有关如何在php website上使用开发版本和buildconf
脚本的说明。
最终用户的发布版本(已生成configure
脚本)应直接从php.net下载。