我花了一天的时间试图让我的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