Apache“无法初始化模块”,因为在更改PHP配置后,模块和PHP的API不匹配

2022-08-30 12:27:49

php -v 给出了这个

PHP Warning:  PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP    compiled with module API=20090626
These options need to match in Unknown on line 0
PHP Warning:  PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP    compiled with module API=20090626
These options need to match in Unknown on line 0
bogus test name tests/

我已经从php 5.2升级到5.3。在此之前,一切都很好。


答案 1

更新 PHP 版本时(尤其是从 X.Y 版本更新到 X.Z 版本时),还必须更新 PHP 扩展


这是因为PHP扩展是在C语言中开发的,并且“接近”PHP的内部 - 这意味着,如果这些内部的API发生变化,则必须重新编译扩展才能使用新版本。

而且,在 PHP 5.2 和 PHP 5.3 之间,据我所知,PHP 引擎使用的内部数据结构已经进行了一些修改 - 这意味着必须重新编译扩展,以便与这些数据结构的新版本相匹配。


如何更新PHP扩展将取决于您使用的系统。

如果您在Windows上,则可以在此处找到一些扩展名:http://downloads.php.net/pierre/
有关不同版本的更多信息,您可以查看 windows.php.net 左侧边栏上的内容。.dll

如果您使用的是 Linux,则必须:

  • 检查您的分发提供的内容
  • 或者使用命令,重新下载相关扩展的源代码,然后重新编译它们。pecl

答案 2

pecl uninstall module_name

然后

pecl install module_name

推荐