ODBC与FreeTDS PHP不能通过HTTP工作

问题描述:

我已经得到FreeTDS,unixODBC和ODBC在PHP上启用。这一切似乎都很好。我可以通过iSQL命令行进行连接。ODBC与FreeTDS PHP不能通过HTTP工作

由于某些原因,PHP通过HTTP访问时无法工作。

例如。 通过命令行如果我运行php index.php(其中index.php通过ODBC连接)它工作正常。

但是当通过HTTP访问相同的代码,返回

Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect

这会是一些权限的情况下提前

这里

由于是连接码

$connect = odbc_connect("DSNNAME", "USERNAME", "PASSWORD") or die('e'); 

我已更改凭据。但是,当我通过PHP通过终端通过SSH运行它时,代码工作正常。但是当我通过HTTP运行时,它不会。

同样在SSH上,我没有通过root用户运行它。我正在使用ec2 AWS - 并通过ec2-user(这是默认设置)运行SSH

我觉得'apache'用户没有我不知道的东西的权限。

+0

你能共享代码? –

+0

@SG_用一些代码更新了问题。请让我知道这是否有帮助。 – Shoogle

+1

您是否曾尝试从PHP添加dsn,例如'$ dsn =“Driver = FreeTDS; Server = 192.168.1.17; Port = 1433; Database = mydb; TDS_Version = 7.2;”; \t \t $ Connection = odbc_connect($ dsn,$ user,$ pass);' 它对我很有用 –

您可以从PHP源代码添加DSN这样

$dsn = "Driver=FreeTDS;Server=192.168.1.17;Port=1433;Database=mydb;TDS_Version=7.2;"; 
$Connection = odbc_connect($dsn,$user,$pass);