【问题标题】:PHP to AS400 Connection via ODBC/PDO error from browserPHP 到 AS400 连接通过浏览器的 ODBC/PDO 错误
【发布时间】:2017-02-27 21:01:44
【问题描述】:

我正在尝试在 linux 服务器和我们的 AS400 之间建立连接以查询 DB2 数据库。我安装并配置了 unixODBC 和 iSeries Access 驱动程序。当使用isql/etc/odbc.ini 中指定的DSN 时,连接正常。当我运行php -f connect.php 时,连接也可以正常工作,但是当我浏览到http://localhost/connect.php 时,我收到以下消息:

异常 'PDOException' 带有消息 'SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC][Driver Manager]Can't open lib '/opt/ibm/iSeriesAccess/lib64/libcwbodbc.so':找不到文件' 在 /srv/http/connect.php:25 堆栈跟踪:#0 /srv/http/connect.php(25): PDO->__construct('odbc:DRIVER={iS...', '', ' ') #1 {main}

我假设这一定是权限问题...但我不知道该怎么做。有任何想法吗?谢谢。

【问题讨论】:

  • 好的,在网上阅读了一堆帖子后,我开始看到这里的误解...当 php 页面显示“无法打开 lib '/opt/ibm/etc...'它假定路径位于 /srv/http/opt/ibm/etc...' 而不是从根目录开始...问题是该路径由文件 odbcinst.ini 提供并按原样读取...

标签: php mysql pdo db2 ibm-midrange


【解决方案1】:

好的,我找到了解决方案,我会把它发布给任何需要它的人。

在 /usr/lib/ 中创建指向驱动程序文件的符号链接可以解决问题。

sudo ln -s /opt/ibm/iSeriesAccess/lib64/* /usr/lib/*

之后 Apache/PHP 将能够毫无问题地找到文件。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2013-12-08
    • 2013-03-27
    • 1970-01-01
    • 2016-10-19
    • 2015-11-19
    • 2013-02-20
    • 2013-06-09
    • 2012-09-07
    • 2011-10-07
    相关资源
    最近更新 更多