2013-01-15 85 views
5

我想在我的Mac上安裝memcached。我已經下載並安裝它。我也將它添加到php.ini中。但仍然memcached不加載。我意識到問題在於和phpizeAPI版本不匹配。phpize和php api版本不匹配

這是我所得到的,當我做php -v

PHP Warning: PHP Startup: memcached: Unable to initialize module 
Module compiled with module API=20090626 
PHP compiled with module API=20100525 
These options need to match 
in Unknown on line 0 
PHP 5.4.8 (cli) (built: Oct 30 2012 19:29:58) 
Copyright (c) 1997-2012 The PHP Group 
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies 

我會很感激,如果有人能幫助我解決這個問題。乾杯。

+0

你是如何安裝PHP和memcached的?你在使用包管理器嗎? –

+0

我手動編譯php。但用brew來安裝memcached – Subash

回答

2

您將需要手動構建PHP擴展。您最終得到的擴展是針對系統的PHP 5.3副本構建的,而不是您自己安裝的PHP 5.4。

+0

我也試過手動安裝。你願意友善地指引我走向正確的方向嗎? – Subash

+0

請務必運行隨PHP 5.4安裝的'phpize'副本,* not *'/ usr/bin/phpize'。 – duskwuff

+0

當我做{which php}它顯示我/ usr/bin/php和{which phpize}返回/ usr/bin/php。所以我認爲他們都是對的。不是嗎? – Subash

0

根據你的php版本下載phpX.X.tgz,將文件php.z,zend_modules.h,zend_extension.h解壓並複製到include目錄下(如果你編輯了這個文件,你可以檢查正確的api版本文件和搜索定義API_VERSION它必須與API數量的phpinfo所示)

在當你建立了擴展必須包含正確的.h文件是可以從phpxx.tgz來源獲得換句話說匹配

8

是的,您應該通過以下步驟手動構建擴展程序

phpize 
./configure --with-php-config=/usr/local/php/bin/php-config 
make 
make install 

確保您運行指向您正確的php版本的phpizephp-config

不在/usr/bin/phpize/usr/include/php

請覈實--with-php-config

+0

非常非常感謝'--with-php-config'提示!有沒有任何文件,我們發現哪些參數可以傳遞給'。/ configure'? – steven