Windows上的Zend服务器未加载php_ibm_db2.dll


Zend server on Windows not loading php_ibm_db2.dll

我花了一天的时间试图让我的Zend服务器在localhost(Windows8)上读取i5系统上的DB2文件。

我遵循了很多指南,阅读了类似问题的答案,现在:

  • 我的机器上安装了ibm express-C
  • ext''文件夹中有php_ibm_db2.dll
  • application.ini的扩展名为php_ibm_db2.dll,指向正确的文件夹
  • 我的环境变量路径有[…]C:''Program Files''ibm''gsk8''lib64;C: ''Program Files(x86)''ibm''gsk8''lib;C: ''PROGRA~1''IBM''SQLLIB''BIN;C: ''PROGRA~1''IBM''SQLLIB''FUNCTION;C: ''PROGRA~1''IBM''SQLLIB''SAMPLES''REPL

但是重新启动服务器,在日志中,我发现"PHP警告:PHP启动:无法加载动态库'C:''Program Files(x86)''Zend''ZendServer''lib''phpext''PHP_ibm_db2.dll'"

即使它是dll的正确路径。

服务器无法识别db2_connect()(未定义)

知道发生了什么事吗?有可能是Windows 8 64位的问题吗?

我的猜测是DLL是为不兼容的PHP版本编译的。您可以在此处获取扩展的备用版本:http://sourceforge.net/projects/db2mc/files/IBM_DB2%20PHP%20Driver%20for%20Windows/

我没有看到PHP 5.5的版本。这可能意味着,如果不自己编译它,您将无法使它与PHP 5.5一起工作。

对于PHP5.4,请注意PHP的ts(线程安全)和nts(非线程安全)安装之间的区别。

对于较旧的PHP版本,请确保获取使用兼容编译器构建的内容。您可能想要VC9(Visual C++9),因为它对应于PHP的官方下载。

application.ini中指向的extension_dir是什么。看起来您已经指定了extension=,extension_dr也有一些值。因此,这两条路径可能会被附加,导致错误

如果是这样的话,你能检查一下上面的内容吗?然后尝试一下,更正为在extension_dir中有路径,在extension中只有模块名称(php_ibm_db2.dll)。

感谢

Praveen