2013-07-04 101 views
0

我有我的本機Apache/PHP安裝程序可以正常使用PHP 5.3.15和memcache。那裏一切都很好。但我希望能夠在本地運行PHP 5.2實例。所以我決定最簡單的方法是使用MAMP。PHP API版本不匹配爲MAMP在Mac上編譯Memcache

安裝MAMP很容易,並且在幾秒鐘內就可以啓動服務器。我遇到的唯一問題是編譯和安裝5.2.17(MAMP附帶的版本)的memcache擴展。

下面是我得到它的安裝步驟:

  1. 下載PHP 5.2.17源文件,並把他們安置在我 MAMP /斌/ PHP/php5.2.17 /包括/ PHP的文件夾中。
  2. 下載了memcache-2.2.7並將內容提取到/ tmp。
  3. $ /Applications/MAMP/bin/php/php5.2.17/bin/phpize設置env爲5.2.17。
  4. $ MACOSX_DEPLOYMENT_TARGET=10.8 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config=/Applications/MAMP/bin/php/php5.2.17/bin/php-config
  5. $ make
  6. $ cp /tmp/memcache-2.2.7/memcache-2.2.7/modules/memcache.so /Applications/MAMP/bin/php/php5.2.17/lib/php/extensions/no-debug-non-zts-20060613
  7. 新增extension=memcache.so到我的php.ini。
  8. 重新啓動服務器。

這是從運行phpize的輸出:

Configuring for: 
PHP Api Version:   20041225 
Zend Module Api No:  20060613 
Zend Extension Api No: 220060519 
configure.in:3: warning: prefer named diversions 
configure.in:3: warning: prefer named diversions 

我得到這個錯誤在php日誌:

04-Jul-2013 00:32:03] PHP Warning: PHP Startup: memcache: Unable to initialize module 
Module compiled with module API=20090626, debug=0, thread-safety=0 
PHP compiled with module API=20060613, debug=0, thread-safety=0 
These options need to match in Unknown on line 0 

從我本來以爲延建運行phpize命令使用正確的API版本。但API日誌告訴我,否則。注意到20090626是我的原生PHP的API版本也是有益的。所以我認爲它仍然與我的本地版本編譯(但不知道)。

任何人都知道它爲什麼不用正確的API版本編譯?

回答

1

好吧,看來如果你使用的是PHP 5.2.17,你必須使用memcache-2.2.5才能正確加載。我一直在想這個問題幾天,決定編譯一個老版本,它的工作!感謝上帝!