PHP DLL 扩展未加载 - “找不到指定的模块”

问题描述 投票:0回答:1

我下载了 PHP 的

pdo_ibm
ibm_db2
扩展,并将它们放在
/ext
文件夹中(对于 Windows 为 .dll)。之后,我转到 php.ini 并添加以下行(不带“;”):

extension=ibm_db2
extension=pdo_ibm

尝试运行任何程序或执行简单的

php -v
后,会显示以下消息:

C:\Users\jzafrilla\Desktop\xampp\php>php -v

PHP Warning:  PHP Startup: Unable to load dynamic library 'ibm_db2' (tried: \Users\jzafrilla\Desktop\xampp\php\ext\ibm_db2 (The specified module could not be found.), \Users\jzafrilla\Desktop\xampp\php\ext\php_ibm_db2.dll (%1 is not a valid Win32 application.)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'ibm_db2' (tried: \Users\jzafrilla\Desktop\xampp\php\ext\ibm_db2 (The specified module could not be found.), \Users\jzafrilla\Desktop\xampp\php\ext\php_ibm_db2.dll (%1 is not a valid Win32 application.)) in Unknown on line 0

PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_ibm' (tried: \Users\jzafrilla\Desktop\xampp\php\ext\pdo_ibm (The specified module could not be found.), \Users\jzafrilla\Desktop\xampp\php\ext\php_pdo_ibm.dll (%1 is not a valid Win32 application.)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'pdo_ibm' (tried: \Users\jzafrilla\Desktop\xampp\php\ext\pdo_ibm (The specified module could not be found.), \Users\jzafrilla\Desktop\xampp\php\ext\php_pdo_ibm.dll %1 is not a valid Win32 application.)) in Unknown on line 0

PHP 7.2.34 (cli) (built: Oct  1 2020 10:24:14) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

检查

phpinfo();
文件后,它们不会显示为激活的模块/扩展,当我在 cmd 中键入
php -m
时也不显示。

已尝试将行添加到

php.ini-production
php.ini-development
。还尝试将 php.ini 文件中的
extension_dir
位更改为绝对和动态路由,但仍然找不到它们。我已经检查过 .dll 是否适用于此 php 版本
(7.2.34)
。我没有安装任何其他 php 实例,因为 phpinfo() 页面上的路径显示了正确的路线。是的,每次更改后,我都会重新启动 XAMPP 和 php localhost 服务器以查看其是否有效,但即使所有内容都已关闭,也会显示错误。有线索吗?

php pdo db2 php-extension
1个回答
1
投票

错误信息:

\Users\jzafrilla\Desktop\xampp\php xt\php_ibm_db2.dll(%1 不是有效的 Win32 应用程序。)

实际上意味着 PHP 和 DLL 之间存在架构不匹配(32 位与 64 位)。

您的 PHP 被编译为 64 位二进制文件,因此它只能与 64 位扩展一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.