PHP 到 AS400 连接通过来自浏览器的 ODBC/PDO 错误

PHP to AS400 Connection via ODBC/PDO error from browser

我正在尝试在 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][驱动程序管理器]无法打开 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}

我假设这一定是权限问题...但我不确定如何解决。有任何想法吗?谢谢。

好的,我找到了解决方案,我会 post 提供给任何需要它的人。

为 /usr/lib/ 中的驱动程序文件创建一个符号 link 解决了这个问题。

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

之后Apache/PHP就可以顺利找到文件了。

希望对您有所帮助。