我正在尝试在linux服务器和AS400之间建立连接以查询DB2数据库。我安装并配置了unixODBC和iSeries Access驱动程序。当使用isql
和/etc/odbc.ini
中指定的DSN时,连接可以正常通过。当我运行php -f connect.php
时,连接也可以工作,但是当我浏览到http://localhost/connect.php
时,我得到以下消息:
异常'PDOException' with message 'SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC][Driver Manager]Can't open lib '/opt/ibm/iSeriesAccess/lib64/libcwbodbc。/srv/http/connect.php:25堆栈跟踪:#0/srv/http/connect.php(25): PDO->__construct('odbc:DRIVER={iS…', ", ") #1 {main}
我认为这一定是一个许可问题…但我不知道该怎么做。什么好主意吗?谢谢你。
好的,我找到了解决方案,我会把它贴出来给任何需要的人。
在/usr/lib/中创建一个指向驱动文件的符号链接可以解决这个问题。
sudo ln -s /opt/ibm/iSeriesAccess/lib64/* /usr/lib/*
之后,Apache/PHP将能够定位文件而不会打嗝。
希望能有所帮助。