仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 750|回复: 7
打印 上一主题 下一主题

[CentOS(社区)] 带来一篇CentOS下php连mssql并设置unixODBC

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:43:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!媒介:
换了事情后,一向忙于LINUX体系架构方面的事变,也履历了从不太懂的疾苦到较为熟习点的志得意满。事情的过程当中,一向把百度做为自已的首选搜刮引擎。可厥后,却不能不并且终极只用了谷歌。由于此赐与我的匡助更好更多。

OK,扯回话题,公司如今用的数据库对照杂,MSSQL、ORACLE、MYSQL都有在用,之前利用WINDOWS+PHP的情况,这类情形下利用PHP连MSSQL是对照简单的,但功能上却比之LAMP差了很多。由此,新事情的次要的事变就是体系及WEB设置的迁徙。

但是LAMP情况下,PHP连MSSQL却有很多的成绩。公司的单点上岸成绩就完成不了。更不克不及表现LAMP较之WAMP的上风。怎样办,BAIDU用吧。却发明良多中文的办理计划,不是版本较老,就是完成不了。厥后,选择了GOOGLE,找到了良多E文的办理计划。试着做了,虽然说走了些弯路,但终极仍是完成了我的需求.期间,参考了供应驱动的freetds官方网站,很细心的浏览了文档,和一些后人的办理计划。在些感谢他们。

今朝,我实面了种情形下的装置:
第一:体系装置时已装置设置好LAMP。这时候从头编译PHP情况相称坚苦。
我利用RPM包和TAR包两种体例来装置情况。其实不修改PHP的装置及设置,但只能利用ODBC毗连MSSQL(数据源)。

第二:体系装置后,利用TAR包装置设置LAMP情况。这时候能够从头编译PHP。
我利用TAR包来装置,且有从头编译PHP和不从头编译PHP的两种计划。从头编译能够完成间接毗连和ODBC毗连两种体例。不从头编译能够完成ODBC毗连MSSQL(数据源)




这篇博文,以第一种情形,且利用TAR包的体例来装置freetds,以rpm装置unixODBC-devel及unixODBC。利用ODBC毗连MSSQL(数据源)。(要想懂得更多的关于php下怎样毗连MSSQL,和几种体例就参考www.freetds.org中的HOWTO文档,我打仗到的利用了两种一是间接毗连,一是odbc。)

1、装置情况
1、CentOs5.1+FreeTds0.64.tar.gz+unixODBC-2.2.11-7.1(除FreeTds是分外的包,别的的都可使用YUM来装置,或是体系装置时就装好)
2、最好也装置上XWINDOWS,我装置的是GNOME的,由于设置DSN(数据源)时会用上。固然,你也能够在文本界面中设置。


2、局部包的装置及版本显现
1、[root@rpm-mssql~]#rpm-aq|grephttpd
system-config-httpd-1.3.3.1-1.el5
httpd-2.2.3-11.el5_1.centos.3
httpd-devel-2.2.3-11.el5_1.centos.3(这个包包括ApacheHTTP办事器的包括文件、头文件和APXS工具步伐。假如你盘算载进分外的模块(除该产物所供应的),你必要它。嘿嘿,假如装PHP时,不要利用TAR包的HTTPD,那就能够利用--with-apxs2=/usr/sbin/apxs.关于此的装置另文申明)
httpd-manual-2.2.3-11.el5_1.centos.3

2、[root@rpm-mssql~]#rpm-aq|grepphp
php-cli-5.1.6-15.el5
php-common-5.1.6-15.el5
php-5.1.6-15.el5
php-odbc-5.1.6-15.el5
php-pdo-5.1.6-15.el5
php-pear-1.4.9-4
php-mysql-5.1.6-15.el5
php-ldap-5.1.6-15.el5
你其实不必要装置云云之多,依据自已的需求,装置。由于我是体系装置时定制装置成LAMP情况的。

3、[root@rpm-mssql~]#rpm-aq|grepunixODBC
unixODBC-devel-2.2.11-7.1(这个包的感化同httpd-devel,必定要装上啊,装置freetds.tar.gz时要用上的,它会主动寻觅unixODBC的装置路径的。不然有大概编译堕落。)
unixODBC-2.2.11-7.1
unixODBC-kde-2.2.11-7.1(同道们,这个要装啊,原本是KDE桌面下的图形设置ODBC数据源的工具。呵呵,在GNOME中也能用的。)

OK,mysql的装置包我未几说,由于这里次要是利用ODBC(DSN数据源)在LAMP情况下PHP连MSSQL的。

4、装置请求的包:
freetds-0.6.tar.gzhttp://www.ibiblio.org/pub/Linux/ALPHA/freetds/stable/
unixODBC-kde-2.2.11-7.1
unixODBC-devel-2.2.11-7.1.i386.rpmyuminstall-yunixODBC-develhttp://mirror.centos.org/centos/5.1/os/i386/CentOS/


3、装置、测试和设置:
1、装置freetds(均是在root用户下,假如你在别的用户下,记得在运转makeinstall时su-root)
注:在体系装置时要装置上GCC编译器等开辟工具及库。不外,在CentOs下少甚么就用yum来装置啦。
注:一样的前提能够装置在REDHATAS5.1及AS5下。

[root@rpm-mssqlfreetds-0.64]#tarzxvffreetds-0.64.tar.gz
[root@rpm-mssql~]#cdfreetds-0.64
[root@rpm-mssqlfreetds-0.64]#./configure--with-tdsver=7.0--with-unixODBC

以下的要在root用户下实行,特别是makeinstall
[root@rpm-mssqlfreetds-0.64]#make;makeinstall
[root@rpm-mssqlfreetds-0.64]#makeclean
ok,如今已装置好啦。这时候会在/usr/local/etc天生freetds.conf文件
[root@rpm-mssqlfreetds-0.64]#cd/usr/local/etc
[root@rpm-mssqletc]#ll
total12
-rw-r--r--1rootroot3572Jan2419:13freetds.conf
-rw-r--r--1rootroot362Jan2419:13locales.conf
-rw-r--r--1rootroot219Jan2419:13pool.conf

可使用ODBCConfig来设置啦
注,在装置unixODBCunixODBC-devel后,就会在/etc天生两个文件odbc.iniodbcinst.ini:
[root@rpm-mssqlfreetds-0.64]#ll/etc/od
odbc.iniodbcinst.ini.rpmnewoddjobd.conf.d/
odbc.ini.rpmnewoddjob/
odbcinst.inioddjobd.conf

2、测试和设置
A、装置好freetds后,先利用tsql来测试下:
[root@rpm-mssqletc]#/usr/local/bin/tsql-S211.103.155.***-UsaPassword:password(***是三个数字,为了宁静,变了。而:后的password为实在的SA的暗码)
localeis"en_US.UTF-8"
localecharsetis"UTF-8"
Password:(这里还要再输出一次暗码)
1>
假如你充足侥幸,呵呵,就会呈现“1>”申明你之前的编译准确啦。
接上去就入手下手真实的进进正题啦,设置freetds.conf

B、编纂freetds.conf(经测试,这个步调能够省往。由于装freetds的目标是为了它的驱动。实践上这也表示着人人接纳rpm包装置时必要做些甚么啦)

[root@rpm-mssqletc]#vi/usr/local/etc/freetds.conf
到场以下代码,
[MySql2k](在FreeTds0.64版本中,这个参数很主要。在“SystemDSN”中,必要用的到。这也是和之前版本的一些不同)
host=211.103.155.***(这个是装有sqlserver2k的办事器IP,连SQL2K5也能行)
port=1433
tdsversion=8.0

C、设置/etc/odbc.ini/etc/odbcinst.ini(注,为了更直不雅,我利用X视窗的体例下图形设置,固然,我也会把经由图形设置后的ini文件拷配过去)
这里必要用到ODBCConfig/usr/bin/ODBCConfig
[root@rpm-mssqletc]#/usr/bin/ODBCConfig
ODBCConfig:cannotconnecttoXserver

D、切换到XWINDOWS,后面说过,利用的是GNOME,列位亦可使用KDE。君不见unixODBC-kde就是为KDE专门做的嘛。
[root@rpm-mssqletc]#/usr/bin/ODBCConfig后,呈现以下图,图示中有申明。但要声明的是,我利用的FreeTds的版本是0.64的,和前一版本0.63有些利用上的不同。次要是"Servername"的变更,和"Setup"的变更。在接上去的一系列图示中,会分离申明。


装置FreeTds的目标,就是为了供应PHP毗连MSSQL的驱动的。下面一切的举措,就是为此做筹办的。驱动有了装载的路径,就要增添数据源,以使毗连MSSQL乐成。

接上去的E,F就是重点的以图文并茂的体例来讲明的。
E、图形设置Driver的历程,就是设置/etc/odbcinst.ini的历程。
freetds0.64版本增添了对64位数据库的撑持。


上面的是图形设置后的odbcinst.ini的文件,个中MySql2k是新增添地:
[root@rpm-mssql~]#cat/etc/odbcinst.ini
[PostgreSQL]
Description=ODBCforPostgreSQL
Driver=/usr/lib/libodbcpsqlS.so
Driver64=/usr/lib
Setup=/usr/lib
Setup64=/usr/lib
UsageCount=1
CPTimeout=
CPReuse=

[MySql2k]
Description=v0.64withProtocolv8.0
Driver=/usr/local/lib/libtdsodbc.so
Driver64=/usr/local/lib/libtdsodbc.so
Setup=/usr/lib/libtdsS.so
Setup64=/usr/lib/libtdsS.so
UsageCount=1
CPTimeout=
CPReuse=

F、DSN数据源创建及注重事项:
图形设置"SystemDSN"的历程,是设置/etc/odbc.ini文件的历程:



上面的是图形设置"SystemDSN"后,odbc.ini的文件,假如没有或是不想装置X视窗的话,间接设置。
[root@rpm-mssql~]#cat/etc/odbc.ini
[mssql]
Description=MySql2k
Driver=MySql2k
Servername=MySql2k(这里,不要设置IP地点甚么的,要和FREETDS.CONF里的设置一样,最少我试的就是云云,在FREETDS0.63中并没有此征象。)
Database=
UID=sa
PWD=
Port=1433

G、isql测试:

乐成了,呵呵,实践上这篇文章也能够就此打住啦。不外。仍是实测下PHP连MSSQL的效果吧

H、php页面测试
[root@rpm-mssql~]#vi/var/www/html/phpmssql.php
<?
$conn_beidabiz=odbc_connect("mssql",sa,"password");###password,酿成本人响应的直实暗码。####
{
echo"ok";
}
?>


全文到些结束,下一篇估量写下全体是利用rpm包来装置的体例设置php连MSSQL.
本文出自“阳春白雪的家”博客,请务必保存此出处http://rickyfang.blog.51cto.com/1213/125837


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
若天明 该用户已被删除
沙发
发表于 2015-1-16 21:57:04 | 只看该作者

带来一篇CentOS下php连mssql并设置unixODBC

如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-21 12:50:29 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
蒙在股里 该用户已被删除
地板
发表于 2015-1-30 18:39:17 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-16 22:14:08 | 只看该作者
硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
再现理想 该用户已被删除
6#
发表于 2015-3-5 13:13:38 | 只看该作者
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
老尸 该用户已被删除
7#
发表于 2015-3-12 10:20:24 | 只看该作者
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
海妖 该用户已被删除
8#
发表于 2015-3-19 22:01:59 | 只看该作者
熟读写基础知识,学得会不如学得牢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 01:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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