在尝试为MAMP编译Xcache版本3.x时,phpize会查找Xcache 2.x附带的以前版本的PHP
pwd:/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时出现问题。
答案 0 :(得分:3)
您需要配置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
从http://www.php.net/releases/下载php5.5.3源代码。 MAMP不包含PHP源代码,因此您必须在从源代码构建扩展时提供和配置它。
提取存档并将文件夹重命名为php
并将其放在/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源代码的传统位置。
如果你有一个位于/path/to/php5.x/
的php5.x的编译版本,那么php源代码应该在/path/to/php5.x/include/php/
找到。
在downloading the XCache source code解压缩归档后,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>编辑php.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。
MAMP 2.2附带了{5.5}的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"