簡體   English   中英

Mac上用於MAMP的PHP API版本不匹配編譯內存緩存

[英]PHP API version mismatch compiling memcache for MAMP on Mac

我的本機Apache / PHP安裝程序可以與PHP 5.3.15和memcache一起正常使用。 那里一切都很好。 但是我也希望能夠在本地運行PHP 5.2實例。 因此,我認為最簡單的方法是使用MAMP。

安裝MAMP非常容易,只需幾秒鍾即可啟動服務器。 我唯一的問題是編譯並安裝5.2.17(MAMP隨附的版本)的memcache擴展。

這是我執行安裝步驟:

  1. 下載了PHP 5.2.17源文件,並將它們放在我的MAMP / bin / php / php5.2.17 / include / php文件夾中。
  2. 下載了memcache-2.2.7,並將其內容提取到/ tmp。
  3. $ /Applications/MAMP/bin/php/php5.2.17/bin/phpize為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. 在我的php.ini中添加了extension=memcache.so
  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版本進行編譯嗎?

好的,因此,如果您使用的是PHP 5.2.17,則必須使用memcache-2.2.5才能正確加載。 我已經考慮了幾天這個問題,決定編譯一個較舊的版本,並且有效! 感謝上帝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM