PHP 启动:无法初始化模块

Posted

技术标签:

【中文标题】PHP 启动:无法初始化模块【英文标题】:PHP Startup: unable to initialize module 【发布时间】:2011-10-04 09:01:13 【问题描述】:

我正在尝试在我的系统中安装 mongoDB。按照指示

http://www.mongodb.org/display/DOCS/php+Language+Center,

我下载了php_mongo.dll 并将其放入../php5.3.0/ext 文件夹中。然后我在 php.ini 中添加了extension=php_mongo.dll。当我重新启动 WAMP 时,出现以下错误:

PHP Startup: unable to load dynamic library php5.3.0/ext/php_gd2.dll

同样的错误

php_mbstring.dll,php_mysql.dll,php_mysqli.dll,php_pdo_mysql.dll,php_pdo_sqlite.dll.

之后,我又遇到了一个错误:

PHP Startup: Mongo: Unable to initialize module 
Module compiled with build ID=API20090626, TS, VC9
PHP compiled with build ID=API20090626, TS, VC6.
These options need to match.

在网上查阅了一些资料后,我意识到我必须为 PHP 更改编译器。有谁知道如何将 php 编译器 VC6 更新为 php 编译器 VC9?

我的 Apache 版本 2.2.11 PHP 版本 5.3.0

谢谢

【问题讨论】:

【参考方案1】:

http://windows.php.net/download/

下载 VC9 x86 Thread Safe 的 zip 文件(用于 PHP 作为 Apache 模块运行)。 在某处提取 zip 的内容 停止阿帕奇 备份当前 PHP 目录中的 php.ini 文件../php5.3.0/ 删除(或备份)您在../php5.3.0/ 中的其余内容 将提取的内容放入../php5.3.0/php_mongodb.dll 放入../php5.3.0/ext/ 把 php.ini 也放回去 重启 Apache

编辑: 抱歉,我忘了提到您还需要将您的 apache 安装替换为来自 apachelounge 的安装,并安装 Microsoft 2008 C++ Runtime (x86) 或 Microsoft 2008 C++ Runtime (x64),按照中的注释“我选择哪个版本?”在同一页上http://windows.php.net/download/

【讨论】:

好的,我会尝试并告诉你。 @vaanipala:确保你先备份重要的东西。如果您将 WAMP 作为一个完整的包安装,则可能涉及一些我不知道的依赖项。我通常独立安装 WAMP 堆栈的每个部分。 好的,我明白了。我会先尝试你的解决方案。如果它不起作用,那么我将不得不单独重新安装所有内容。 @vaanipala:您是否单独安装了所有这些部分(Apache、MySQL、PHP)?或者您是否使用了一些预制的 WAMP 包来一次性安装它们?如果您执行后者,则可能存在特定于该 WAMP 包的配置依赖项。如果你单独安装它们(不是作为某些 WAMP 安装包的一部分),那么你应该很好。 我使用了一次性安装它们的 WAMP 包。所以,我想我会遇到麻烦。我会先尝试你的解决方案。如果还是不行,就得卸载WAMP,分别重新安装Apache、MySql、Php。【参考方案2】:

暂时先看看是哪个模块在警告信息中,直接去php.ini文件注释一下即可。这可以工作

【讨论】:

以上是关于PHP 启动:无法初始化模块的主要内容,如果未能解决你的问题,请参考以下文章

PHP 警告:PHP 启动:杂音:无法初始化模块,使用错误的 API 模块编译

windows7 无法启动 PDO、mysql PDO模块

无法使用 PHP Codeigniter 连接 SQL Server

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

PHP 7 用户会话问题 - 无法初始化存储模块

php扩展与嵌入