我真的觉得我已经对此事进行了详尽的搜索,发现了类似的问题并尝试了许多事情但没有成功,所以我第一次在这里发帖提问:
我做了很多网页/网页编程(主要是PHP / jQuery),并在我的数字图书馆部门的Drupal / Ubuntu Server上托管这些页面。我只是对它们进行编码并通过Dreamweaver发布它们,因为我对Drupal前端没什么用处。我只需要服务器用于我的页面。
无论如何,我想制作一些可以连接到我们的库目录的PHP页面,所以我一直在使用Drupal / Ubuntu服务器的命令行。我安装了unixODBC,遇到了一些麻烦,安装了FreeTDS,设置了驱动程序和DSN。
...最后
我能够通过tsql连接到我们的目录并运行查询。
我制作了一个基本的PHP脚本来测试连接:
它来自服务器的Ubuntu命令行(连接成功)。
我在浏览器中加载它时不起作用。我得到了可怕的:
警告:odbc_pconnect():SQL错误:[unixODBC] [驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序,第15行/var/www/mydirectory/mytestpage.php中的SQLConnect中的SQL状态IM002
更新:我在笔记本电脑的分区中安装了一个测试Ubuntu服务器,在那里我开始干净,安装了Apache2 / PHP5(带有mssql和odbc模块等)/ FreeTDS等。我得到了一个tsql连接。我制作了基本的PHP脚本并从命令行成功运行它。然后我从浏览器导航到php页面并它工作了!我仍然需要在Drupal服务器版本上实现这一点,但现在我至少将问题缩小到了Drupal上的问题服务器
我搜索并发现了可能的原因:
文件权限,我认为我已更正,但没有去
也许我已经设置了用户DNS,而不是系统DNS,我尽力使用正确的“odbcinst”命令选项进行纠正
也许php需要以CGI模式而不是模块运行。但这似乎不太可能是我读到的。我不确定这会如何影响Drupal。 (我应该在这里进行系统范围的改变是有限制的。)
许多人说是SElinux阻止Apache在浏览器中显示该页面,但暂时禁用SElinux不起作用。
感谢您的帮助!
答案 0 :(得分:0)
我的猜测是它与php有关。 ini档案。在我的Ubuntu系统上,我有2个。 一个在/etc/php5/apache2/php.ini中 在/etc/php5/cgi/php.ini中有一个 需要调整apache2路径中的值以允许连接。不幸的是,除了我使用MySQL和Mongo
之外,我并没有太多使用答案 1 :(得分:0)
检查您是否在以下位置启用了mssql.so等
/etc/php5/apache2/php.ini,您将在/etc/php5/cli/php.ini上找到另一个 在ubuntu php.ini中的将单独为cli& mod_php apache配置
答案 2 :(得分:0)
如果您要在命令行上测试您的odbc源代码,我建议您使用isql实用程序而不是tsql。 isql使用您在odbc.ini中定义的DSN连接到数据库,而tsql直接连接到您的数据库。
如果它适用于isql,它也应该适用于您的网页。
同时检查Drupal / Ubuntu服务器文件/etc/odbc.ini(您的DSN源)和/etc/odbcinst.ini(TDS驱动程序设置),看看它们是否与正在运行的Ubuntu安装上的那些匹配。
答案 3 :(得分:0)
将import java.util.*;
import java.io.*;
class Test {
public static void main (String[] args) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int a[]=new int[10],flag=1;
System.out.println("Enter The Nos.");
if(br.readLine()!=null)
{
for(int i=0;i<=9;i++) {
String num = br.readLine().replaceAll("\\s+", "");
if(num != null) {
a[i]=Integer.parseInt(num);
} else {
//a[i] = 0; // You might want to assign a[i] to some integer if the input number is null
}
}
int i=0;
do{
if(a[i]!=42)
System.out.println(a[i]);
else{ flag=0;break; }
i++;
}while(flag==1 && i < 10);
}
}
}
从工作服务器复制到非工作服务器,在启动Web服务器之前添加所需的环境变量,并确保您的网络服务器具有对php.ini
和{的完全访问权限{1}}。所以,使用mssql知识库或帮助。