Welcome 微信登录

首页 / 数据库 / MySQL / Linux(Fedora)下freetds编译安装及编译php的mssql扩展

一.freetds编译前言:编译安装php的mssql扩展时,提示Cannot find FreeTDS in known installation directories,configuration无法成功,于是,开始折腾编译安装freetds。附: FreeTDS是一组帮我们在Unix/Linux系统中连接SQLServer或 Sybase数据库的开源library。SQLServer和Sybase同用TDS(Tabular Data Stream) 协议,所以这个开源的FreeTDS才可以同时支持它们。微软官方没有支持Unix/Linux的客户端及驱动,所以FreeTDS通常被用作很底层的驱动。1.下载freetds的源码包ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz2.解压freetds并进入解压后的freetds包目录3.执行如下命令安装:  $ ./configuration --with-tdsver=8.0 --prefix=/usr/local/freetds --enable-msdblib  $ make  $ make install  参数意义如下:  --prefix:指定freetds的安装目录  --with-tdsver:设置tds版本  --enable-msdblib:为是否允许Microsoft数据库函数  三个参数都不是必须的,但最好指定--prefix,--with-tdsver这两个参数  如果不指定--with-tdsver的话连接mssql时可能会连接失败,具体情况如下:  1.用tsql连接时,如果tsql参数或者freetds.conf里的servername没有指定tdsver时,会导致连接失败,如果编译时指定了--with-tdsver则无论tsql是否指定    tdsver都能连接成功 2.通过PHP扩展mssql.so连接时,无论编译时是否加--with-tdsver,都需要在freetds.conf里的servername里指定tdsver,否则无论如何都无法连接成功4.配置数据库连接 1.配置文件在:/usr/local/freetds/etc/freetds.conf2.配置数据库连接[servername] host = 192.168.1.xxx port = 1433 tds version = 8.0 client charset = UTF-8 servername自定义服务器名,在连接数据库或者配置 ODBC数据源的时候需要通过它来引用。 port1433 一般不需要修改。 clientcharset 指定为 UTF-8,不会影响SQL Server 数据库服务器的存储编码。测试是freetds是否连上mssql:http://blog.csdn.net/aidenliu/article/details/6664382可以用tsql -C 查看freetds的信息 二 .phpmssql扩展安装 1.下载mssql的源码包,一般php的源码包的ext目录下都有  2. 解压并进入源码所在文件夹  3. /usr/bin/phpize(根据phpize所以路径指定)  4. ./configuration       我编译的时候,这里一直报.Cannotfind FreeTDS in known installation directories      折腾很久以后,发现这句错误信息是写在config.m4这个文件里的,而且报错的原因是因     为找不到sybdb.h这个文件,config.m4代码如下    iftest "$PHP_MSSQL" = "yes"; then   for i in /usr/local /usr /usr/local/freetds;do      iftest -f $i/include/sybdb.h; then        FREETDS_INSTALLATION_DIR=$i         FREETDS_INCLUDE_DIR=$i/include           break              eliftest -f $i/include/freetds/sybdb.h; then             FREETDS_INSTALLATION_DIR=$i             FREETDS_INCLUDE_DIR=$i/include/freetds               break         fi done iftest -z "$FREETDS_INSTALLATION_DIR"; then AC_MSG_ERROR(Cannotfind FreeTDS in known installation directories) fi 其中红色字体是我根据自己freetds编译路径自己加的,特别注意的是,更改了config.m4文件后需要重新执行phpize加了这一句后,./configuration成功然后make&makeinstall 很顺利
  1. /etc/php.d下新建mssql.ini并加入extention=mssql.so
  2. 重启apache..然后PHPINFO.一切OK
  3. 5,6 step 可能需要根据具体PHP版本处理extention的方式有不同处理
RedHat Enterprise Linux 5.0 下安装Oracle 11gLinux下源码编译MySQL 5.5 与安装过程全记录相关资讯      Linux教程 
  • Linux教程:如何在命令行中查看目  (07/28/2014 12:22:23)
  • Linux 修改root密码  (11/03/2012 07:53:38)
  • su - root 与su root的区别  (06/06/2012 00:39:40)
  • Linux进程间通信:消息队列  (01/28/2013 09:43:00)
  • U盘安装Linux开机无法启动解决方法  (10/07/2012 08:55:52)
  • Windows 7/Linux 同步时间  (05/15/2012 06:17:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数