我下载了 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 服务器以查看其是否有效,但即使所有内容都已关闭,也会显示错误。有线索吗?
错误信息:
\Users\jzafrilla\Desktop\xampp\php xt\php_ibm_db2.dll(%1 不是有效的 Win32 应用程序。)
实际上意味着 PHP 和 DLL 之间存在架构不匹配(32 位与 64 位)。
您的 PHP 被编译为 64 位二进制文件,因此它只能与 64 位扩展一起使用。