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

浏览器中通过ODBC/PDO连接PHP到AS400的错误,php,mysql,pdo,db2,ibm-midrange,Php,Mysql,Pdo,Db2,Ibm Midrange,我试图在linux服务器和AS400之间建立连接,以查询DB2数据库。我安装并配置了unixODBC和iSeries访问驱动程序。使用isql和/etc/odbc.ini中指定的DSN时,连接正常。当我运行php-f connect.php时,连接也会工作,但是当我浏览到http://localhost/connect.php我收到以下信息: 异常'PDOException',消息'SQLSTATE[01000]SQLDriverConnect:0[unixODBC][Driver Manage

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

异常'PDOException',消息'SQLSTATE[01000]SQLDriverConnect:0[unixODBC][Driver Manager]无法打开lib'/opt/ibm/iSeriesAccess/lib64/libcwbodbc.so':在/srv/http/connect.php:25堆栈跟踪:#0/srv/http/connect.php(25):PDO->_构造('odbc:Driver={iS…,'','','))#1{main}


我想这一定是一个权限问题……但我不知道该怎么办。有什么想法吗?谢谢。

好的,我找到了解决方案,我会为需要的人发布

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

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

之后,Apache/PHP将能够定位该文件而不会出现问题


希望能有所帮助。

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