Amazon Web Services - ODBC with FreeTDS PHP 无法通过 HTTP 工作


amazon web services - ODBC with FreeTDS PHP Not working via HTTP

我已经在PHP上启用了FreeTDS,unixODBC和ODBC。这一切似乎都很好。我可以通过iSQL命令行连接。

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

例如。如果我通过命令行运行 php index.php(其中 index.php 通过 ODBC 连接),它运行良好。

但通过 HTTP 访问时相同的代码返回

警告:odbc_connect():SQL 错误:[unixODBC][驱动程序管理器]找不到数据源名称,并且未指定默认驱动程序,SQL 状态为 SQLConnect 中的 IM002

这可能是一些许可的情况吗

提前致谢

这是连接代码

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

我已经更改了凭据。但是当我通过 PHP 命令通过终端通过 SSH 运行它时,代码工作正常。但是当我通过HTTP运行它时,它没有。

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

我觉得"apache"用户无权访问我不知道的东西。

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

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

2021 - 回到未来:

我知道这篇文章很旧,但我的回复可以为一个绝望的灵魂指出正确的方向:

  1. 您正在使用 odbc,并且命令"isql"工作正常
  2. 您正在使用 FreeTDS,命令 "tsql" 工作正常
  3. 问题在于运行通过 FreeTDS 调用 odbc 的 php 脚本 ->不断给出错误

请阅读:https://www.linuxquestions.org/questions/blog/tix-592494/freettds-libiodbc-iodbc-php-7-4-21-on-slackware-current-5-13-5-38621/