文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>【原创】Linux下php使用adodb对sql Server访问配置

【原创】Linux下php使用adodb对sql Server访问配置

时间:2009-02-27  来源:nanlover

版本历史:

v.1.0, nanlovor, 2009/02/27, 创建

文档概要说明:

本文档主要说明了在linux下使用 php库 adodb 对sql server 进行访问时的配置说明。

相关文档:

1. 概述

       linux下的php 对sqlserver存储过程的访问,有个比较严重的bug,就是如果想要同时获得 返回值和结果集时, linux下php提供的mssql扩展是有问题的。这影响了我们很多对原来神经系统功能向linux web 平台上的移植,也就是无法重用许多茂哥的存储过程。现在找到了一条途径,利用adodb 的接口,我自己封装了一套较为简单的接口, 可以在 linux 下对sqlserver存储过程 访问, 多返回值+多结果集情况均适用,能够正确返回。

2. freetds的安装

       如果php要采用底层freetds访问sqlServer中多返回集和多返回值的存储过程,那么需要安装 freetds的0.82版本(原来我们采用的是freetds的0.64版本,在php调用sqlServer的多返回值+多返回集情况下是有问题的)

 

1、删除原来版本

如果已经安装有原来的 freetds-0.64,最好删除原有的版本

#cd freetds-0.64

#make uninstall

如果没有 原有的freetds-0.64的安装目录已经找不到了, 则直接

 

#mv /usr/local/freetds /usr/local/freetds-0.64 (假设原来freetds 安装在/usr/local/freetds 下)

2、安装新版本

# tar xvfz freetds-stable.tgz

# cd freetds-0.82

# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib

# make

# make install

 

(注意,以下操作很重要,否则,php会检测不到freetds的目录):由于PHP检测其安装目录的时候有些问题;因此,需要检查/user/local/freetds/lib/libtds.a 和 /usr/local/freetds/include/tds.h 两个文件是否存在,如果不存在,则

#touch /usr/local/freetds/lib/libtds.a

#touch /usr/local/freetds/include/tds.h

创建两个空文件。

 

3、配置freetds.conf

#vim /usr/local/freetds/etc/freetds.conf

 

增加

[serviceName] # 服务名

        host = **.**.**.**  #(数据库主机地址)

        port = 1433

        tds version = 8.0

        client charset = GBK

 

4、如果原来的系统已经有了银联接口,那么就不需要重新编译php了,直接重新启动Apache 即可;

#service httpd restart

 

3.重新编译php,添加银联接口

1、  准备好银联给予的一个程序包 php.rar

 

银联接口使用环境:在linux环境下(内核版本号:2.6.20-1.2320.fc5smp),Apache2(版本号为:2.2.2), PHP5(版本号为:5.2.5)下尝试使用PHP页面调用成功。

我们提供如下文件:

 

2、在PHP的安装包解开的目录下(本例子为:php-5.2.5):

进入ext的目录,将chinapay.def复制到这个目录下,使用ext_skel来生成自动扩展的框架。

命令方式为:

#./ext_skel --extname=chinapay --proto=chinapay.def

 

3 修改ext/chinapay/目录下的config.m4文件,将如下内容的前面"dnl"删除,保存文件:

   dnl PHP_ARG_ENABLE(chinapay, whether to enable chinapay support,

   dnl Make sure that the comment is aligned:

   dnl [  --enable-chinapay           Enable chinapay support])

 

4 修改ext/chinapay/目录下的chinpay.c和php_chinapay.h文件。文件内容见样例。对于chinapay.php文件可以用来测试是否能够正常调用签名方法(在编译完成后可以使用:/usr/local/php-5.2.5/sapi/cli/php -f chinapay.php 来运行该PHP文件,验证是否成功)。

 

5 退到ext的上一层目录

 

6 使用./buildconf --force

 

7 使用命令:

#./configure --with-apxs2=/usr/sbin/apxs --with-mysql --with-zlib-dir --with-bz2 --with-libxml-dir --with-gd --with-ttf --enable-mbstring --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir --with-oci8=/opt/oracle --without-sqlite --with-mssql=/usr/local/freetds --enable-chinapay --enable-soap

 

8 修改Makefile文件,找到EXTRA_LIBS,在最后加入 -L/usr/local/lib -lnpc

/usr/local/lib为libnpc.so所在的目录。

 

9 使用make

 

10 使用make install.

  注意:make的时候如果仍然找不到libnpc.so的话,可以采取下面措施:进入到/etc/ld.so.conf.d下,写入一个名为chinapay.conf的文件,内容为/usr/local/lib。表示so的搜索路径。然后运行命令:ldconfig

 

4.adodb的安装和配置

将svn目录中的 include/db/adodb 整个目录放到php中配置的头文件目录下 例如

/var/www/html/include/db/

# cp -R adodb  /var/www/html/include/db/

将 GenericAdoMssqlDB 放到 /var/www/html/include/db/ 中,该文件为对adodb接口的封装

# cp GenericAdoMssqlDB  /var/www/html/include/db/

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载