PHP启动:无法加载动态库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP启动:无法加载动态库相关的知识,希望对你有一定的参考价值。

我正在尝试使用Firebird 2.5.2.26539:

  • Windows 8
  • Apache 2.2.22
  • php 5.4.10

当我在php中启用firebird的扩展时:

- extension=php_interbase.dll
- extension=php_pdo_firebird.dll

我收到这些错误:

[2012年12月26日12:08:11 UTC] PHP警告:PHP启动:无法加载动态库'C: Program Files(x86) PHP ext php_interbase.dll' - 无法找到指定的模块。在第0行的未知中

[26-Dec-2012 12:08:13 UTC] PHP警告:PHP启动:无法加载动态库'C: Program Files(x86) PHP ext php_pdo_firebird.dll' - 无法找到指定的模块。在第0行的未知中

如果我在命令行中使用PHP -a,则错误消息不同:找不到fbclient.dll。

我运行了flamerobin并打开了数据库。所以我将fbclient.dll复制到PHP根路径。然后错误变为:

[2012年12月26日11:55:46 UTC] PHP警告:PHP启动:无法加载动态库'C: Program Files(x86) PHP ext php_interbase.dll' - %1不是有效的Win32应用。在第0行的未知中

[2012年12月26日11:55:46 UTC] PHP警告:PHP启动:无法加载动态库'C: Program Files(x86) PHP ext php_pdo_firebird.dll' - %1不是有效的Win32应用。在第0行的未知中

任何人都可以帮我这个吗?我怀疑这个版本的Firebird仍然没有为PHP做出正确的扩展。谢谢。

答案

Cli和Apache PHP运行两个不同的配置文件。这将解释CLI模式中缺少的错误消息。可能性是此应用程序的扩展,而不是存储在PHP扩展文件夹中。我不熟悉Windows下的配置,因此您可能需要谷歌搜索Windows PHP扩展目录并确保您的扩展文件存在。

根据您的错误判断路径是“C: Program files(x86) PHP ext

在尝试加载扩展文件之前,请确保您的扩展文件存在。

另一答案

我正在重复Nenhum Pois以上的评论(有些人可能会错过),因为它是问题的真正解决方案:

问题是来自FB 64位安装的fbclient.dll。我刚从32位获得fbclient.dll,将其复制到PHP根目录,它解决了问题

另一答案

如果在Windows上运行,请检查您的扩展是否使用与PHP解释器相同的Visual Studio编译器版本进行编译。

从PHP下载页面https://windows.php.net/download

  • PHP 7.3 = VC15
  • PHP 7.1 = VC14
  • PHP 5.6 = VC11

虽然示例的MongoDB扩展是使用VC11编译的,但请参阅https://pecl.php.net/package/mongo/1.6.16/windows并检查-vc11-的DLL列表文件名

以上是关于PHP启动:无法加载动态库的主要内容,如果未能解决你的问题,请参考以下文章

PHP 警告:PHP 启动:无法加载动态库 'bz2'

PHP 启动:无法加载动态库 'sqlsrv'

PHP启动:无法加载动态库

PHP 启动:无法加载动态库`curl.so` Ubuntu

PHP 警告:PHP 启动:无法加载动态库

PHP 警告:PHP 启动:无法加载动态库