2

在尝试为 MAMP 编译 Xcache 版本 3.x 时,phpize 会查找 Xcache 2.x 附带的以前版本的 PHP

密码:/Applications/MAMP/bin/php/php5.5.3/xcache-3.1.0

$ phpize
grep: /Applications/MAMP/bin/php/php5.4.19/include/php/main/php.h: No such file or directory
grep: /Applications/MAMP/bin/php/php5.4.19/include/php/Zend/zend_modules.h: No such file or directory
grep: /Applications/MAMP/bin/php/php5.4.19/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:        
Zend Module Api No:     
Zend Extension Api No:  

当我升级到 OSX 10.9 时出现了这个问题。

4

1 回答 1

3

针对 MAMP 构建 XCache

  1. 设置命令行
  2. 下载并配置php源码
  3. 构建 xcache

设置命令行

您需要配置 Bash 以使用正确的php命令。由于您想使用 5.5.3 针对 MAMP 进行构建,您可以在提示符下运行以下命令:

$ export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH

您还需要添加以上内容以~/.bashrc确保将来的会话使用正确的 php 命令 - 附加到 .bashrc:

$ echo 'export PATH=/Applications/MAMP/bin/php/php5.5.3/bin:$PATH' >> ~/.bashrc

现在当你运行时:

$ which php

你应该看到:/Applications/MAMP/bin/php/php5.5.3/php

下载并配置php源码

从http://www.php.net/releases/下载 php5.5.3 源代码。MAMP 不包含 PHP 源代码,因此您必须在从源代码构建扩展时提供并配置它。

提取存档并将文件夹重命名为 simplephp并将其放置在/Applications/MAMP/bin/php/php5.5.3/include/- 这意味着您现在应该拥有路径/Applications/MAMP/bin/php/php5.5.3/include/php/.

当你运行时:

$ /Applications/MAMP/bin/php/php5.5.3/include/php/configure

你应该看到一堆输出。如果您看到错误,请仔细检查您是否将源复制到了正确的位置。

现在您可以开始针对 PHP 5.5.3 构建扩展。

注意:您可能必须创建包含文件夹

由于 MAMP 不附带源代码,他们选择省略该include文件夹 - 继续创建它,因为它是从源代码构建扩展时查找 php 源代码的常规位置。

如果您有 php5.x 的编译版本位于 ,/path/to/php5.x/那么 php 源代码应该位于/path/to/php5.x/include/php/

从源代码构建 XCache

下载 XCache 源代码后,解压缩存档并cd进入其中:

$ cd /path/to/xcache-source-code

假设您已将 xcache-3.1.0 下载到 OSX 的下载文件夹中,您可以运行以下命令:

$ cd ~/Downloads/xcache-3.1.0

从 XCache 源代码文件夹中运行这些命令来构建和安装 Xcache 扩展:

$ phpize
$ ./configure --enable-xcache --with-php-config=/Applications/MAMP/bin/php/php5.5.3/bin/php-config
$ make 
$ make install

如果一切顺利,您将xcache.so在您的扩展目录中看到。

现在您可以通过添加extension=xcache.so到您的 php.ini 来启用扩展。如果您使用的是 MAMP Pro,则通过 File > Edit Template > php.[version].ini 编辑 php.ini 很重要——否则,如果您使用的是 Basic,则可以运行以下单行:

$ open -a TextEdit `php -i | grep 'Load.*Config.*File.*=>' | sed s/'.* => '/''/`

现在,在 php.ini 中搜索其他“扩展”指令并添加extension=xcache.so到列表中。

通过运行检查它是否已安装:

$ php -i | grep xcache

您应该看到 Xcache 的设置。当您重新启动 MAMP 时,XCache 将被启用。

给 JT 的小费

使用 5.5.3 禁用 Zend OPcache

MAMP 2.2 附带为 PHP 5.5.3启用的Zend OPcache 。 这可能会导致 XCache 出现问题。

如果您使用 XCache,请确保禁用 Zend OPcache。在 php.ini 中搜索 * [OPcache]并注释掉该行:

zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/…/opcache.so"

喜欢

;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/…/opcache.so"
于 2013-11-23T06:03:50.130 回答