我是 LAMP 环境的新手,在浏览器查看 ODBC 查询时遇到了一些问题。我的 php 代码在 root 下的控制台中可以运行,但如果我以 www-data 用户身份运行文件,它会像浏览器一样失败。
以下是 php 代码:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$conn = odbc_connect("NetSuite", "username", "pw");
if (!$conn) {
die(' Could not connect: ' . odbc_error($conn));
}
$query = odbc_prepare($conn, "SELECT CUSTOMER_SERIAL_NUMBER FROM CUSTOMER_SERIAL_NUMBER");
$success = odbc_execute($query, array('Data'));
if($success)
odbc_result_all($query);
?>
这是我在浏览器和控制台中遇到的错误(以 www-data 用户身份运行时):
PHP Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Can't open lib '/opt/netsuite/odbcclient/lib64/ivoa25.so' : file not found, SQL state 01000 in SQLConnect in /var/www/html/GetNSData_1.php on line 5
Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Can't open lib '/opt/netsuite/odbcclient/lib64/ivoa25.so' : file not found, SQL state 01000 in SQLConnect in /var/www/html/GetNSData_1.php on line 5
PHP Warning: odbc_error() expects parameter 1 to be resource, boolean given in /var/www/html/GetNSData_1.php on line 8
Warning: odbc_error() expects parameter 1 to be resource, boolean given in /var/www/html/GetNSData_1.php on line 8
我的驱动程序文件夹设置为 /opt/netsuite/odbcclient/lib64 以下是我的权限细目:
drwxr-xr-x 3 www-data root 4096 Jul 28 16:17 opt
drwxr-xr-x 3 www-data root 4096 Jul 28 16:17 netsuite
drwxr-xr-x 8 www-data root 4096 Aug 17 17:41 odbcclient
drwxr-xr-x 2 www-data www-data 4096 Aug 16 18:39 lib64
lib64 中的所有文件都设置为
-rwxr-xr-x 1 www-data www-data
php文件当前设置为777。
我只是不知道缺少什么权限或权限错误,导致 www-data 无法访问驱动程序。任何帮助都将不胜感激。