不加载Firebird扩展

时间:2012-12-04 18:21:33

标签: 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
...

没有错误表示无法加载扩展程序但是每当我打印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

1 个答案:

答案 0 :(得分:6)

想出来!好的,首先要把基础知识排除在外:

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

现在是政变的恩典。该错误消息极具误导性。此时它应该找到你的DLL,但它缺少一个整体部分:fbclient.dll,可以在Firebird安装的bin文件夹中找到。我之前所说的每个地方都说fbclient.dll放在ext文件夹中,但只有 才能将它放在PHP文件夹的根目录中。

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