我不有一個答案,但我不能評論在這一點上......但是,我確實有可能有用的信息。
很久以來,我一直在爲這種適用於Linux的NetSuite ODBC驅動程序而苦苦掙扎。我學到的一件有趣的事是該驅動程序與Ubuntu 14.02不兼容。它與2017年4月即將退出支持的12.02兼容。但是,在我設置的Ubuntu 12.02 VM上,我仍然遇到同樣的錯誤。他們在2016年5月下旬發佈了一篇關於兼容性的文章,這篇文章是在我放棄了它並剛剛在Windows機器上開發的。
我在使用ISQL時遇到同樣的錯誤,並且在我的PHP代碼中出現同樣的錯誤。我查到權限設置爲有任何人r和x但它不工作。
當運行這個命令:
sudo ldd /opt/netsuite/odbcclient/lib64/ivoa25.so
我得到這個:
linux-vdso.so.1 => (0x00007ffebfb4b000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fcfefc08000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcfefa04000)
libicuuc.so.42 => not found
libicudata.so.42 => not found
libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007fcfef7f6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcfef5d8000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fcfef2d4000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcfeefce000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fcfeedb8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcfee9f3000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcff01b6000)
libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007fcfee7cf000)
這是沒有意義的,因爲他們是在目錄:
drwxr-xr-x 2 root root 4096 Jan 8 2016 .
drwxr-xr-x 8 root root 4096 Jul 28 16:45 ..
-rw-r--r-- 1 root root 1534752 Jan 8 2016 ddtrc25.so
-rw-r--r-- 1 root root 260915 Jan 8 2016 ivldap25.so
-rw-r--r-- 1 root root 12137 Jan 8 2016 ivmgan25.so
-rw-r--r-- 1 root root 124833 Jan 8 2016 ivmgapi25.so
-rw-r--r-- 1 root root 437482 Jan 8 2016 ivmghu25.so
-rw-r--r-- 1 root root 1521 Jan 8 2016 ivoa25.ini
-rwxr-xr-x 1 root root 3255664 Jan 8 2016 ivoa25.so
-rw-r--r-- 1 root root 14920460 Jan 8 2016 libddicu25.so
-rw-r--r-- 1 root root 16010036 Jan 8 2016 libicudata.so.42
-rw-r--r-- 1 root root 1608359 Jan 8 2016 libicuuc.so.42
-rw-r--r-- 1 root root 354900 Jan 8 2016 libivoa25m.so
-rw-r--r-- 1 root root 1172888 Jan 8 2016 libodbcinst.so
-rw-r--r-- 1 root root 1659688 Jan 8 2016 libodbc.so
-rw-r--r-- 1 root root 1457352 Jan 8 2016 odbccurs.so
-rw-r--r-- 1 root root 2154752 Jan 8 2016 openssl700.so
我得到的無法找到「未找到」文件的權限。當我創建符號鏈接到這些文件,我能得到未找到錯誤的ivoa25.so,但後來得到這一個:
Warning: odbc_connect(): SQL error: [unixODBC], SQL state in SQLConnect in/var/www/html/DataBase.php on line 5
無法連接:
對於這個錯誤,我接觸的球員在unixODBC.org,他們這樣說:
Its a guess, but maybe try setting ODBCINI, the driver may need that to find the ini file
export ODBCINI=/etc/odbc.ini
,但沒有做任何事情要麼...
我很樂意幫助你解決這個問題,因爲這將有助於我太多...我們守ld比較筆記。
UPDATE
使用ISQL使用
$ odbcisql64 -m 0
命令錯誤仍然存在。當你運行這個它看起來是這樣的:
DataDirect OpenAccess SDK Interactive SQL (ODBC) Version 7.2
(c) Copyright 1995-2013 Progress Software Corporation. All rights reserved.
Program Locale:en_US.UTF-8
ISQL>
試圖使用連接字符串
ISQL> connect "user"*"pw"@netsuite
我得到同樣的錯誤這樣連接...
SQL: connecting to database: netsuite...
SQL: Can't connect to database netsuite
The following error information describes the failure
ODBC Call = SQLConnect()
SQL State = 01000
Native error = 0(0)
Error Message = [unixODBC][Driver Manager]Can't open lib '/opt/netsuite/odbcclient/lib64/ivoa25.so' : file not found
SQL: isql_connect() failure
Elapsed time 2 ms.
ISQL>
...然而,我可以'連接'(至少它似乎連接)使用這個更通用的isql命令
$ isql NetSuite user pw
......它連接。此作品在兩個Ubuntu的14和12,但是我不能讓任何SQL命令的工作,它看起來不同於其他ISQL連接導致
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
看看我現在在做什麼,看看它是否也解決了你的問題。 – Nathan
我做了一些改變,並且讓isql工作,以及在控制檯中工作的php代碼,但在我的瀏覽器中仍然出現錯誤。你可以說關於權限和所有權或任何其他可以幫助解決這個問題的Apache2設置? – mudrock
對不起,我不能幫助Apache。我使用nginx並在CLI上運行NetSuite。你嘗試了我在OP中嘗試的所有選項嗎? ('putenv'等) – Nathan