2014-03-25 176 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文件。