不加载Firebird扩展

Mik*_*uck 4 php apache firebird

我正在尝试在PHP中使用Firebird扩展.我的文件夹中有扩展文件(php_pdo_firebird.dll, php_interbase.dll)ext.我正在将它们添加到我的php.ini文件中

...
[PHP_PDO_FIREBIRD]
extension=php_pdo_firebird.dll
[PHP_INTERBASE]
extension=php_interbase.dll
...
Run Code Online (Sandbox Code Playgroud)

没有错误说没有加载扩展,但每当我打印我phpinfo没有看到它们中的任何一个列出.我在这里错过了什么?

为了它的价值,我在Windows 7上使用Apache 2.2运行PHP版本5.3.14 TS.

编辑:似乎记录了一些错误,只是我的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
Run Code Online (Sandbox Code Playgroud)

Mik*_*uck 6

弄清楚了!好的,首先要了解基础知识:

  • 确保DLL的版本与您的PHP版本匹配.
  • 对于那些使用Windows安装程序的用户,出于某种原因,它不提供包含Interbase和Firebird模块的选项,因此您必须下载匹配的.zip文件并从那里的ext文件夹中复制它们.
  • 在您的extension_dir设置中仔细检查任何拼写错误,例如未转义的反斜杠.这仅适用于值不是"用引号括起来"的情况.

现在为了政变de grace.该错误消息极具误导性.此时它应该找到你的DLL,但它缺少一个整体部分:fbclient.dll可以在binFirebird安装的文件夹中找到.无论我看书上说之前放置fbclient.dll在在ext文件夹中,但只有当你把它放在你的根工作PHP文件夹.

希望这有助于未来任性的灵魂:)

  • 如果你正在使用XAMPP并且你最终像我这样,我在这里找到了答案:http://www.undermyhat.org/blog/2009/07/php-windows-install-unable-to-load-dynamic-library -php_mssql -dll-php_pspell-dll-etc /在%apache_home%\ bin中复制FbClient.dll (4认同)