您的位置:首页 > 编程语言 > PHP开发

php安装PDO_ODBC驱动

2016-04-11 18:00 585 查看
转自:http://blog.chinaunix.net/uid-10449864-id-2956897.html

因为项目需求,需要在linux下连接SQL2000,郁闷了一天才搞出来,下面写下安装过程。

LAMP配置环境采用的是nginx的环境,过程的安装就不啰嗦了,详细情况参看这篇blog:
http://blog.s135.com/post/366/
1、安装unixODBC软件包,如下:

unixODBC-2.2.11-7.1.i386.rpm

unixODBC-kde-2.2.11-7.1.i386.rpm

unixODBC-devel-2.2.11-7.1.i386.rpm

yum -y install unixODBC-*

2、从官网上下载PDO_ODBC扩展包

wget http://pecl.php.net/get/PDO_ODBC-1.0.1.tgz
tar -zxvf PDO_ODBC-1.0.1.tgz

/usr/local/webserver/php/bin/phpize

./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-odbc=unixODBC,/usr

make

 

该处报错:
/web/PDO_ODBC-1.0.1/pdo_odbc.c:34:1: 错误:未知的类型名‘function_entry’
function_entry pdo_odbc_functions[] = {
^
/web/PDO_ODBC-1.0.1/pdo_odbc.c:35:2: 警告:标量初始化带花括号

经查,是 function_entry的问题,修改 pdo_odbc.c中的代码,改为static const zend_function_entry(参考:http://blog.csdn.net/a600423444/article/details/7931257)




make install

在php.ini文件添加下面一行

extension = "pdo_odbc.so"

从 php.ini 检查 pdo_odbc 是否安装成功。

3、安装freetds

简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库!

tar -zxvf freetds-stable.tgz.tar

cd freetds-0.82/

./configure --prefix=/usr/local/webserver/freetds/ --with-tdsver=7.0 --with-unixODBC

make

make intall

如果你自己编译了libiconv软件包,估计要做个软连接

ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

测试下是否连接成功:

/usr/local/webserver/freetds/bin/tsql -S ip地址 -U 用户名

locale is "en_US.UTF-8"

locale charset is "UTF-8"

出现以上字符就说明编译成功了。

下面就可以进行配置freetds,可以通过图形界面,也可以通过字符界面,这里通过字符界面来配置:

[root@localhost etc]# more /usr/local/webserver/freetds/etc/freetds.conf

添加以下内容:

[sql2000]

        host = 192.168.100.100

        port = 1433

        tds version = 8.0   #必须使用8.0 ,才可以访问SQL Server 2000

        client charset = GBK  #客户端字符集,在使用isql 访问数据源时,如果检索的数据中中文为乱码,则需要添加并设置

[root@localhost etc]# more /usr/local/webserver/freetds/etc/locales.conf

添加以下内容:

[zh_CN]

language = Simplified Chinese

charset = GBK

根据数据库字符类型来定义连接字符,这里数据库是拉丁,所以采用了GBK。

[root@localhost etc]# more /etc/odbcinst.ini

添加以下内容:

[MySql2k]

Description     = ODBC for MySql2k

Driver          = /usr/local/webserver/freetds/lib/libtdsodbc.so

Driver64        = /usr/local/webserver/freetds/lib/libtdsodbc.so

Setup           = /usr/lib/libtdsS.so

Setup64         = /usr/lib/libtdsS.so

UsageCount      = 1

CPTimeout       =

CPReuse         =

[root@localhost etc]# more  /etc/odbc.ini

添加以下内容:

[mssql]

Description     = connect to sql2000

Driver          = MySql2k

Servername      = sql2000

Database        = 连接数据库

UID             = 连接用户名

PWD             = 连接密码

Port            = 1433

4、测试下连接情况

[root@localhost etc]# isq -v mssql(数据源) 用户名 密码

SQL>

出现以上信息就说明连接成功了。

参考文章
http://www.linuxdiyf.com/bbs/thread-76686-1-1.html

http://203.208.37.132/search?q=cache:aKc-dMO9j0IJ:dongbao.blog.sohu.com/rss+locales+freetds+chinese&cd=28&hl=zh-CN&ct=clnk&gl=cn&client=aff-cs-worldbrowser&st_usg=ALhdy286kKz3l17MAJcdB6siDxkNUP3YRA
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: