来自我 2013 年的博文:https://delboy1978uk.wordpress.com/2013/10/30/manually-compiling-php-modules-successfully/
这看起来很眼熟?
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
我不了解你,但我喜欢跟上时代!我的 PHP 是 5.5,我必须安装一些模块。但有时,旧版本会抬起丑陋的脑袋,引起各种悲伤。包管理器可以很好地为您处理所有这些,但有时它们根本不起作用。让你自己编译!所以让我们去做吧!我要安装 memcached,然后是 imagick 库(现在我知道我在做什么了!)
我在 CentOS 6 服务器上执行此操作,但由于我们正在执行旧的 skool 编译方式等,这应该适用于任何其他风格的 Linux,甚至 Mac OS X。
第一步是下载你的 .tar.gz 然后用 tar -zxvf file.tar.gz 解压并进入文件夹。
打开一个显示您的服务器 php.ini 的网页。您正在寻找 PHP API 的版本,以及 extension_dir。
在您的终端中,cd 进入模块源代码文件夹,然后键入 phpize。
如果你查看API版本时发现和你的php.ini不一样,那么说明终端使用的是旧版本的php,你的模块将无法工作!在这种情况下,您需要让它使用正确的 phpize。
键入which phpize 以找出有问题的文件在哪里。 (我的是 /usr/bin/phpize)
我的 PHP 似乎位于 /usr/local,所以我尝试运行 /usr/local/phpize。 API 匹配。所以我做了以下事情:
mv /usr/bin/phpize /usr/bin/phpize-old
ln -s /usr/local/bin/phpize /usr/bin/phpize
成功了一半!我们需要对 php-config 做同样的事情
mv /usr/bin/php-config /usr/bin/php-config-old
ln -s /usr/local/bin/php-config /usr/bin/php-config
现在您已经完成了,安装应该很简单,并且可以根据网络上的大量教程/说明页面工作。
./configure
make
make install
最后编辑您的 php.ini 并添加“extension = memcached.so”(或您编译的任何模块),然后重新启动您的 apache 服务器!
编辑:如果它仍在使用模块源文件夹中的旧内容进行编译,您可能需要运行“phpize –clean”