2014-03-25 138 views
1

我正试图在运行10.9(Mavericks)的Mac上在MAMP中安装PECL memcache扩展。我刚刚升级到MAMP 3.0,需要重新安装。在MAMP Mac OX X上安装memcache PECL扩展10.9

我在终端运行sudo pecl install memcache但我的路径似乎被塞满了,它找不到php.h。它看起来在/Applications/MAMP/bin/php/php5.5.10/include/php/main/php.h/Applications/MAMP/bin/php/php5.5.10/include/不存在。

这是我的终端日志。其他人遇到过这个问题吗?

$ sudo pecl install memcache 
downloading memcache-2.2.7.tgz ... 
Starting to download memcache-2.2.7.tgz (36,459 bytes) 
..........done: 36,459 bytes 
11 source files, building 
WARNING: php_bin /Applications/MAMP/bin/php/php5.5.10/bin/php appears to have a suffix /php5.5.10/bin/php, but config variable php_suffix does not match 
running: phpize 
grep: /Applications/MAMP/bin/php/php5.5.10/include/php/main/php.h: No such file or directory 
grep: /Applications/MAMP/bin/php/php5.5.10/include/php/Zend/zend_modules.h: No such file or directory 
grep: /Applications/MAMP/bin/php/php5.5.10/include/php/Zend/zend_extensions.h: No such file or directory 
Configuring for: 
PHP Api Version: 
Zend Module Api No: 
Zend Extension Api No: 
Enable memcache session handler support? [yes] : no 
building in /private/tmp/pear/install/pear-build-roottck15S/memcache-2.2.7 
running: /private/tmp/pear/install/memcache/configure --enable-memcache-session=no 
checking for grep that handles long lines and -e... /usr/bin/grep 
checking for egrep... /usr/bin/grep -E 
checking for a sed that does not truncate output... /usr/bin/sed 
checking for cc... cc 
checking whether the C compiler works... yes 
checking for C compiler default output file name... a.out 
checking for suffix of executables... 
checking whether we are cross compiling... no 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether cc accepts -g... yes 
checking for cc option to accept ISO C89... none needed 
checking how to run the C preprocessor... cc -E 
checking for icc... no 
checking for suncc... no 
checking whether cc understands -c and -o together... yes 
checking for system library directory... lib 
checking if compiler supports -R... no 
checking if compiler supports -Wl,-rpath,... yes 
checking build system type... x86_64-apple-darwin13.1.0 
checking host system type... x86_64-apple-darwin13.1.0 
checking target system type... x86_64-apple-darwin13.1.0 
checking for PHP prefix... /Applications/MAMP/bin/php/php5.5.10 
checking for PHP includes... -I/Applications/MAMP/bin/php/php5.5.10/include/php -I/Applications/MAMP/bin/php/php5.5.10/include/php/main -I/Applications/MAMP/bin/php/php5.5.10/include/php/TSRM -I/Applications/MAMP/bin/php/php5.5.10/include/php/Zend -I/Applications/MAMP/bin/php/php5.5.10/include/php/ext -I/Applications/MAMP/bin/php/php5.5.10/include/php/ext/date/lib 
checking for PHP extension directory... /Applications/MAMP/bin/php/php5.5.10/lib/php/extensions/no-debug-non-zts-20121212 
checking for PHP installed headers prefix... /Applications/MAMP/bin/php/php5.5.10/include/php 
checking if debug is enabled... no 
checking if zts is enabled... no 
checking for re2c... no 
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. 
checking for gawk... no 
checking for nawk... no 
checking for awk... awk 
checking if awk is broken... no 
checking whether to enable memcache support... yes, shared 
checking whether to enable memcache session handler support... no 
checking for the location of ZLIB... no 
checking for the location of zlib... /usr 
checking for memcache session support... disabled 
checking for ld used by cc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld 
checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no 
checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r 
checking for BSD-compatible nm... /usr/bin/nm 
checking whether ln -s works... yes 
checking how to recognize dependent libraries... pass_all 
checking for ANSI C header files... yes 
checking for sys/types.h... yes 
checking for sys/stat.h... yes 
checking for stdlib.h... yes 
checking for string.h... yes 
checking for memory.h... yes 
checking for strings.h... yes 
checking for inttypes.h... yes 
checking for stdint.h... yes 
checking for unistd.h... yes 
checking dlfcn.h usability... yes 
checking dlfcn.h presence... yes 
checking for dlfcn.h... yes 
checking the maximum length of command line arguments... 196608 
checking command to parse /usr/bin/nm output from cc object... ok 
checking for objdir... .libs 
checking for ar... ar 
checking for ranlib... ranlib 
checking for strip... strip 
checking for dsymutil... dsymutil 
checking for nmedit... nmedit 
checking for -single_module linker flag... yes 
checking for -exported_symbols_list linker flag... yes 
checking if cc supports -fno-rtti -fno-exceptions... yes 
checking for cc option to produce PIC... -fno-common 
checking if cc PIC flag -fno-common works... yes 
checking if cc static flag -static works... no 
checking if cc supports -c -o file.o... yes 
checking whether the cc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes 
checking dynamic linker characteristics... darwin13.1.0 dyld 
checking how to hardcode library paths into programs... immediate 
checking whether stripping libraries is possible... yes 
checking if libtool supports shared libraries... yes 
checking whether to build shared libraries... yes 
checking whether to build static libraries... no 

creating libtool 
appending configuration tag "CXX" to libtool 
configure: creating ./config.status 
config.status: creating config.h 
running: make 
/bin/sh /private/tmp/pear/install/pear-build-roottck15S/memcache-2.2.7/libtool --mode=compile cc -I. -I/private/tmp/pear/install/memcache -DPHP_ATOM_INC -I/private/tmp/pear/install/pear-build-roottck15S/memcache-2.2.7/include -I/private/tmp/pear/install/pear-build-roottck15S/memcache-2.2.7/main -I/private/tmp/pear/install/memcache -I/Applications/MAMP/bin/php/php5.5.10/include/php -I/Applications/MAMP/bin/php/php5.5.10/include/php/main -I/Applications/MAMP/bin/php/php5.5.10/include/php/TSRM -I/Applications/MAMP/bin/php/php5.5.10/include/php/Zend -I/Applications/MAMP/bin/php/php5.5.10/include/php/ext -I/Applications/MAMP/bin/php/php5.5.10/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/install/memcache/memcache.c -o memcache.lo 
mkdir .libs 
cc -I. -I/private/tmp/pear/install/memcache -DPHP_ATOM_INC -I/private/tmp/pear/install/pear-build-roottck15S/memcache-2.2.7/include -I/private/tmp/pear/install/pear-build-roottck15S/memcache-2.2.7/main -I/private/tmp/pear/install/memcache -I/Applications/MAMP/bin/php/php5.5.10/include/php -I/Applications/MAMP/bin/php/php5.5.10/include/php/main -I/Applications/MAMP/bin/php/php5.5.10/include/php/TSRM -I/Applications/MAMP/bin/php/php5.5.10/include/php/Zend -I/Applications/MAMP/bin/php/php5.5.10/include/php/ext -I/Applications/MAMP/bin/php/php5.5.10/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/install/memcache/memcache.c -fno-common -DPIC -o .libs/memcache.o 
/private/tmp/pear/install/memcache/memcache.c:26:10: fatal error: 'php.h' file not found 
#include "php.h" 
     ^
1 error generated. 
make: *** [memcache.lo] Error 1 
ERROR: `make' failed 

回答

7

尝试创建包含Xcode的PHP开发头

ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /Applications/MAMP/bin/php/php5.5.10

正确的路径,以匹配您的操作系统的版本和PHP

+0

你是个传奇!所有这一次工作,没有错误。唯一的问题是它将'memcache.so'文件添加到'/ usr/lib/php/extensions/no-debug-non-zts-20100525 /'中,所以我手动将其复制并粘贴到'/ Applications/MAMP/bin/PHP/php5.5.10/lib中/ PHP /分机/无调试非ZTS-20121212'。我已经将'extension = memcache.so'添加到了我的php.ini文件中,并重新启动了MAMP,但无济于事。 Memcache类不存在。我是否错误地移动了它?感谢你的帮助! –

+0

检查我的[关于同一问题的问题](http://stackoverflow.com/questions/22715941/memcached-is-installed-on-php-5-3-28-on-mamp-3-0-3-but - 未加工)。你在Apache日志中看到类似的错误吗? – Aaaron

+0

不,我重新启动服务器时似乎没有任何错误。 Apache日志非常干净。有什么我可以寄给你帮助确定它破裂的地方吗?真的很感激你花时间帮助我:) –

8

从lollerskates666答案的符号链接的目录可能工作,但这是一个坏主意,因为Xcode使用的PHP版本可能与MAMP使用的PHP版本不同。您真正需要做的是下载PHP源代码(确保您正在下载与MAMP使用的完全相同的PHP版本),并将您下载的源代码复制到您的MAMP php版本的/include/目录中。

例如,对于PHP 5.5.10,其步骤是:

  1. 下载PHP 5.5.10从http://us2.php.net/get/php-5.5.10.tar.gz/from/a/mirror

  2. 解压压缩包,然后将文件夹从php-5.5.10只是php重命名。

  3. 在取景器或通过终端前往/Applications/MAMP/bin/php/php5.5.10/

  4. 如果一个名为include的文件夹尚未存在于该位置,请创建它。

  5. 移动2步中的文件夹php,进入include目录中提到的步骤4

您现在应该有/Applications/MAMP/bin/php/php5.5.10/include/php/了一堆东西,包括/main/php.h文件。