金色的骷髅 发表于 2015-1-14 20:43:43

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

如果您觉得本篇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、#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、#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、#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下。

#tarzxvffreetds-0.64.tar.gz
#cdfreetds-0.64
#./configure--with-tdsver=7.0--with-unixODBC

以下的要在root用户下实行,特别是makeinstall
#make;makeinstall
#makeclean
ok,如今已装置好啦。这时候会在/usr/local/etc天生freetds.conf文件
#cd/usr/local/etc
#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:
#ll/etc/od
odbc.iniodbcinst.ini.rpmnewoddjobd.conf.d/
odbc.ini.rpmnewoddjob/
odbcinst.inioddjobd.conf

2、测试和设置
A、装置好freetds后,先利用tsql来测试下:
#/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包装置时必要做些甚么啦)

#vi/usr/local/etc/freetds.conf
到场以下代码,
(在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
#/usr/bin/ODBCConfig
ODBCConfig:cannotconnecttoXserver

D、切换到XWINDOWS,后面说过,利用的是GNOME,列位亦可使用KDE。君不见unixODBC-kde就是为KDE专门做的嘛。
#/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是新增添地:
#cat/etc/odbcinst.ini

Description=ODBCforPostgreSQL
Driver=/usr/lib/libodbcpsqlS.so
Driver64=/usr/lib
Setup=/usr/lib
Setup64=/usr/lib
UsageCount=1
CPTimeout=
CPReuse=


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视窗的话,间接设置。
#cat/etc/odbc.ini

Description=MySql2k
Driver=MySql2k
Servername=MySql2k(这里,不要设置IP地点甚么的,要和FREETDS.CONF里的设置一样,最少我试的就是云云,在FREETDS0.63中并没有此征象。)
Database=
UID=sa
PWD=
Port=1433

G、isql测试:

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

H、php页面测试
#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的核心是免费的,自由使用的,核心源代码是开放的。

冷月葬花魂 发表于 2015-2-16 22:14:08

硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。

再现理想 发表于 2015-3-5 13:13:38

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。

老尸 发表于 2015-3-12 10:20:24

任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.

海妖 发表于 2015-3-19 22:01:59

熟读写基础知识,学得会不如学得牢。
页: [1]
查看完整版本: 带来一篇CentOS下php连mssql并设置unixODBC