免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4112 | 回复: 0
打印 上一主题 下一主题

ODBTP服務端安裝及linux下PHP擴展的編譯安裝 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-07 15:30 |只看该作者 |倒序浏览
關于odbtp是什麽就不多講了.直接到摘斷話吧:
ODBTP is a TCP/IP protocol for connecting to Win32-based databases from any platform. It is ideal for remotely accessing MS SQL Server, MS Access, and Visual FoxPro database from Linux or Unix machines. ODBTP is fast, efficient, and has many features that make it a quality Open Source solution for database connectivity. For more details, see the ODBTP FAQ.
詳細的資料可以從官方網站上取得
[url]http://odbtp.sourceforge.net[/url]

1.   從官方把odbtp的安裝包下載回來
[url]http://sourceforge.net/project/showfiles.php?group_id=70325[/url]
這裏下載的版本號是 1.1.4
然後用tar命令解壓
tar -zxvf odbtp-1.1.4.tar.gz
完了之後進入解壓的目錄

2. 安裝windows服務端
將裏面的 winservice目錄拷貝到安裝有odbc源的win主機上
然後在dos下進入winservice拷貝到的目錄
執行: odbtpctl install
這樣服務端就算是安裝好了.這時可以進入"控制面板"->"服務"裏面看到有odbtp服務.直接啟動他就可以了

3.安裝linux下的php擴展
進入安裝目錄的php/ext目錄下

root@wlf:/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext# pwd
/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext
root@wlf:/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext#

然後編輯Makefile
修改PHP_INCROOT變量
這個變量指向的是php開發頭文件 , 我的是在/usr/include/php5下
保存後執行make命令
root@wlf:/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext# make
gcc -O2 -fpic -DHAVE_ODBTP -DCOMPILE_DL_ODBTP -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I../.. -I./odbtp -o php_odbtp.o -c odbtp/php_odbtp.c
gcc -O2 -fpic -DHAVE_ODBTP -DCOMPILE_DL_ODBTP -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I../.. -I./odbtp -o odbtp.o -c ../../odbtp.c
../../odbtp.c: In function ‘odbLongLongToStr’:
../../odbtp.c:2731: warning: integer constant is too large for ‘long’ type
gcc -O2 -fpic -DHAVE_ODBTP -DCOMPILE_DL_ODBTP -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I../.. -I./odbtp -o sockutil.o -c ../../sockutil.c
In file included from ../../sockutil.c:18:
../../sockutil.h:10:1: warning: "INADDR_NONE" redefined
In file included from ../../sockutil.c:11:
/usr/include/netinet/in.h:176:1: warning: this is the location of the previous definition
gcc -shared -O2 -fpic -DHAVE_ODBTP -DCOMPILE_DL_ODBTP -o php_odbtp.so php_odbtp.o odbtp.o sockutil.o
root@wlf:/home/waterfrog/odbcodbc/odbtp-1.1.4/php/ext#
完了之後會在當前目錄下得到php_odbtp.so文件

4.安裝php擴展
將得到的文件php_odbtp.so拷貝到php的extension目錄下
然後編輯php.ini檔
在裏面加入
extension=php_odbtp.so
這一行就可以了

後後可以通過phpinfo()看到已經加載到了這個擴展
odbtp

ODBTP (Open Database Transport Protocol) Support => enabled
ODBTP Library Version => 1.1.4

Directive => Local Value => Master Value
odbtp.datetime_format => object => object
odbtp.detach_default_queries => Off => Off
odbtp.guid_format => string => string
odbtp.interface_file => /usr/local/share/odbtp.conf => /usr/local/share/odbtp.conf
odbtp.truncation_errors => On => On

5.64位補丁
如果是64位系統,請在編譯前加上64位補丁,補丁文件請看附件
將補丁文件拷入odbtp安裝目錄
然後打補丁
shlinux:~/odbtp-1.1.4 # patch odbtp.h odbtp-1.1.4-amd64.patch
patching file odbtp.h
shlinux:~/odbtp-1.1.4 #
完了之後再編譯就OK了

6.測試程序
下面是一個PHP的測試程序
[php]
<?PHP
$conn=odbtp_connect("192.168.7.115",'DSN=a_admds;UID=username;PWD=password;');

$rlt=odbtp_query("select emp_no from pub.emp",$conn);
while($rcd=odbtp_fetch_array($rlt))
{
        print_r($rcd);
}

?>

[/php]
具體函數可從官方獲得

[[i] 本帖最后由 redflowflag 于 2007-6-7 18:03 编辑 [/i]]

odbtp-1.1.4-amd64.patch.gz

253 Bytes, 下载次数: 32

odbtp的64位patch

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP