LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1434|回复: 9

安装freetds时出现的问题(内详),请大家帮帮忙啊。

[复制链接]
发表于 2006-5-24 16:16:55 | 显示全部楼层 |阅读模式
前提:我想实现在linux下php连接ms sql server。linux是A机,MS SQLserver装在B机。
         我的系统是red hat linux9,在www.freetds.org下载了freetds-   
         stable.tgz,

过程:根据在网上找到的一篇文章(http://developer.51cto.com/art
         /200509/2733.htm
),里面有一段如下
        |     得到freetds-0.53.tgz                                                                      |
         |     cp freetds-0.53.tgz /tmp/. (拷贝freetds包到/tmp目录)            |
         |     cd /tmp (进入目录)                                               |  
         |     tar zxvf freetds-0.53.tgz (解压)                                  |
         |     cd freetds-0.53 (进入解压后目录)                                 |
         |     ./configure –prefix=/usr/local/freetds --with-tdsver=7.0              |
         |     gmake (生成Makefile,我试验过,make也可以)                    |
         |     gmake install (安装)                                             |  

        我下载的freetds-stable.tgz解压后得到的是freetds-0.63,
     前面的都正常,当我运行./configure –prefix=/usr/local/freetds --with-tdsver=7.0后,显示的文字中有一段这样的提示:configue:error: no acceptable C compiler found in $PATH    (注:其中的$符号应该是S上下各有一竖,我不知道如何打出来,因此用$代替)
        接着我再输入gmake,会弹出:gmake: *** NO targets specified and no makefile found .stop

       请问这是怎么回事啊?请大家帮帮忙,我应该怎么做呢?先谢谢大家了。
 楼主| 发表于 2006-5-25 17:30:58 | 显示全部楼层
浏览了一些资料原来是要安装gcc。
现在gcc我已安装好了。用gcc -v显示版本是gcc 3.2.2 20030222 (red hat linux 3.2.2-5),我是用rh9的光盘升级安装的。

但是在执行./configure -prefix=/usr/local/freetds063 --with-tdsver=7.0时
提示:-bash:./configure :NO such file or directory

我已经在/usr/local目录下手动建立了freetds063目录啊?为什么会有这样的提示呢?
回复 支持 反对

使用道具 举报

发表于 2006-5-25 21:38:11 | 显示全部楼层
你在什么路径下输入的./configure???
看来楼主需要‘恶补linux基础
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-26 10:04:38 | 显示全部楼层
"我下载的freetds-stable.tgz解压后得到的是freetds-0.63"'
我将它放在了/tmp目录下,也就是/tmp/freetds-0.63/,我是在这个目录下执行的./configure

然后手动在/usr/local目录下手动建立了freetds063目录。

实在惭愧,linux中很多基础的东西我都还不会,请大家帮帮忙了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-26 11:12:51 | 显示全部楼层
前面的问题ok了。
现在来到了http://developer.51cto.com/art/2 ... 新编译php4”,
php我用的是redhat linux9自带的php,版本为4.2.2。

按文章中说的要执行:
./configure [--with-apxs --with-mysql...] --with-sybase=/usr/local/freetds(请注意是sybase)
make
make install这几条命令。

我是在/tmp/freetds-0.63目录下执行的。 执行./configure [--with-apxs --with-mysql...] --with-sybase=/usr/local/freetds063后提示:
configure:WARING:you should use --build,--host,--target
configure:WARING:invalid host type:[--with-apxs
configure:error:invalid package name:mysql...]
请问这是什么意思呢?

另外在文章中的“第四步-配置php.ini”中说到在php.ini里找到 ;extension=mssql70.so
将注释;去掉成extension=mssql70.so。

我在/etc/下的php.ini中没有找到这一句啊,是不是在rh9中这个php.ini不太一样啊。
回复 支持 反对

使用道具 举报

发表于 2006-5-26 17:28:24 | 显示全部楼层
首先,我对redhat不太熟悉,但是看楼主孜孜不倦的精神确实感动.
首先,几个基本概念楼主不太清楚.
./configure --with-apxs --with-msdblib=/usr/...
其中--with-msdblib=/usr/...是你编译freetds-msdblib这个包的目录.
你在编译freetds之前应先编译freetds-msdblib这个库,否则你无法使freetds支持mssql的.
至于with-apxs看看你自己的apxs的版本号,在编译php的扩展模块的时候必须要选择这个选项,你可以看看php的手册.你可能需要安装php的源代码来编译freetds(如果你没有安装的话,否则你编译时候会找不到相关库文件和头文件。在freebsd中,对freetds的依赖性描述如下,请检查:
B-deps: autoconf-2.59_2 gettext-0.14.5 gmake-3.80_2 libiconv-1.9.2_1 libtool-1.5.18 m4-1.4.3 perl-5.8.7
R-deps: libiconv-1.9.2_1

至于
./configure [--with-apxs --with-mysql...]中的这个[]是表示其中是可选项,不是叫你原封不动执行的...
关于php.ini中没有
extension=mssql70.so
的问题,你可以手工添加.
你可能需要手工修改freetds.conf这个文件,修改成如下的样式,将其中的host、port、修改成符合你的环境的内容:
A typical Microsoft SQL Server 7.0 configuration
;[MyServer70]
       host = ntmachine.domain.com
       port = 1433
       tds version = 7.0
回复 支持 反对

使用道具 举报

发表于 2006-5-26 17:33:22 | 显示全部楼层
不过,鉴于楼主的水平,建议直接搜索一个rpm包安装更简单
goole一下freetds rpm可以找到的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-30 15:12:41 | 显示全部楼层
非常感谢cg111,我去找freetds rpm包,现在已安装好,连接局域网内的ms sql server已经可以,但是连接公网上的sqlserver还是不行,ping 公网上的目的ip,返回connect:Network is unreachable。也就是说我的linux还无法上网。

我的上网环境使用的是电信的adsl虚拟拨号的那种,使用了一台宽带路由器,内网电脑只需设置ip,网关,DNS即可上网。
在linux下怎么样设置DNS啊?
ip和网关我知道在/etc/syconfig/network-scripts下设置ifcfg-eth0(不过其中的network是设置什么啊?我看它默认为192.168.0.0,我的ip为192.168.0.2)
不知dns在什么地方设置呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-30 15:37:22 | 显示全部楼层
dns已找到方法设置了,再次感谢cg111
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-30 17:15:30 | 显示全部楼层
不好意思,还有问题。

现在前面的安装问题已解决,我去找的freetds rpm安装的。
使用tsql -S host_ip -U sa命令,接着输入sql的密码,出现1>
这样是否表示环境已经搭好了呢?

接着按照我找到的文章的第五步,在php中建立数据库连接,
<?
$sqllink=mssql_connect("sqlserver",$sa,$sa)or die("can't connect to database");
echo $link;
?>

在浏览器中(局域网内其它电脑)运行时,出现:
Fatal error: Call to undefined function: mssql_connect() in /var/www/html/test/connect1.php on line 2

这是怎么回事啊?
是不是apace不能解析?根据我前面提到的文章说在php.ini中要将extension=mssql70.so前的注释;去掉,但我在/etc/php.ini中没找到这一句。只找到extension=msql.so。
请问我现在应该怎么做呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表