我正在尝试在 PHP 中使用 Firebird 扩展。我有扩展文件(php_pdo_firebird.dll, php_interbase.dll
) in my ext
文件夹。我将它们添加到我的php.ini
像这样文件
...
[PHP_PDO_FIREBIRD]
extension=php_pdo_firebird.dll
[PHP_INTERBASE]
extension=php_interbase.dll
...
没有抛出任何错误说无法加载扩展,但每当我打印我的phpinfo
我没有看到其中任何一个被列出。我在这里缺少什么?
无论如何,我在 Windows 7 上使用 Apache 2.2 运行 PHP 版本 5.3.14 TS。
Edit:似乎正在记录一些错误,这只是我的error_log
设置被覆盖(对于那些看到此内容的人,请仔细检查 C:\Windows\Temp\php-errors.log)。现在它告诉我只要文件明确存在就无法找到指定的模块。
PHP Warning: PHP Startup: Unable to load dynamic library
'C:\Program Files (x86)\PHP\ext\php_pdo_firebird.dll' -
The specified module could not be found.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library
'C:\Program Files (x86)\PHP\ext\php_interbase.dll' -
The specified module could not be found.
in Unknown on line 0
弄清楚了!好的,首先我们要了解基础知识:
- 确保 DLL 的版本与您的 PHP 版本相匹配。
- 对于使用 Windows 安装程序的用户来说,由于某种原因,它没有提供包含 Interbase 和 Firebird 模块的选项,因此您必须下载匹配的 .zip 文件并从
ext
文件夹在那里。
- 仔细检查您的文件中是否有任何拼写错误,例如未转义的反斜杠
extension_dir
环境。这只适用于该值不是“用引号括起来”的情况。
现在来致命一击。该错误消息极具误导性。此时它应该可以找到您的 DLL,但它缺少一个不可或缺的部分:fbclient.dll
可以在bin
Firebird 安装的文件夹。我之前读过的所有地方都说过fbclient.dll
in the ext
文件夹但它only如果你把它放在你的根目录下就可以工作PHP
folder.
希望这对未来任性的灵魂有所帮助:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)