日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

CentOs下php连mssql并配置unixODBC

發(fā)布時間:2025/3/16 php 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOs下php连mssql并配置unixODBC 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(原創(chuàng)系列,轉(zhuǎn)載請說明!)

前言:
????換了工作后,一直忙于LINUX系統(tǒng)架構方面的事情,也經(jīng)歷了從不太懂的痛苦到較為熟悉點的沾沾自喜。工作的過程中,一直把百度做為自已的首選搜索引擎。可后來,卻不得不而且最終只用了谷歌。因為此給予我的幫助更好更多。
??
????OK, 扯回話題,公司現(xiàn)在用的數(shù)據(jù)庫比較雜,MS SQL、ORACLE、MYSQL都有在用,之前使用WINDOWS+PHP的環(huán)境,這種情況下使用PHP連MS SQL是比較容易的,但性能上卻比之LAMP差了不少。由此,新工作的主要的事情就是系統(tǒng)及WEB配置的遷移。

??????但 是LAMP環(huán)境下,PHP連MS SQL卻有不少的問題。公司的單點登陸問題就實現(xiàn)不了。更不能體現(xiàn)LAMP較之WAMP的優(yōu)勢。怎么辦,BAIDU用吧。卻發(fā)現(xiàn)很多中文的解決方案,不是 版本較老,就是實現(xiàn)不了。后來,選擇了GOOGLE,找到了很多E文的解決方案。試著做了,雖說走了些彎路,但最終還是實現(xiàn)了我的需求.??????期 間,參考了提供驅(qū)動的freetds官方網(wǎng)站,很仔細的閱讀了文檔,以及一些前人的解決方案。在些感 謝他們。
????
目前,我實面了種情況下的安裝:
第一:系統(tǒng)安裝時已經(jīng)安裝配置好LAMP。這時重新編譯PHP環(huán)境相當困難。
??????????我使用RPM 包和TAR包兩種方式來安裝環(huán)境。并不改動PHP的安裝及配置,但只能使用ODBC連接MS SQL(數(shù)據(jù)源)。

第二:系統(tǒng)安裝后,使用TAR包安裝配置LAMP環(huán)境。這時可以重新編譯PHP。
????????我使用TAR包來安裝,且有重新編譯PHP和不重新編譯PHP的兩種方案。重新編譯可以實現(xiàn)直接連接和ODBC連接兩種方式。不重新編譯可以實現(xiàn)ODBC連接MS SQL(數(shù)據(jù)源)




????這 篇博文,以第一種情況,且使用TAR包的方式來安裝freetds,以rpm安裝unixODBC-devel及unixODBC。使用ODBC連接MS SQL(數(shù)據(jù)源)。(要想了解更多的關于php下如何連接MS SQL,以及幾種方式就參考[url]www.freetds.org[/url]中的HOWTO文檔,我接觸到的使用了兩種一是直接連接,一是odbc。)

一、安裝環(huán)境
1、CentOs 5.1 + FreeTds0.64.tar.gz + unixODBC-2.2.11-7.1(除了FreeTds是額外的包,其它的都可以使用YUM來安裝,或是系統(tǒng)安裝時就裝好)
2、最好也安裝上XWINDOWS,我安裝的是GNOME的,因為配置DSN(數(shù)據(jù)源)時會用上。當然,你也可以在文本界面中配置。


二、部分包的安裝及版本顯示
1、[root@rpm-mssql ~]# rpm -aq |grep httpd
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????(這個包包含 Apache HTTP 服務器的包含文件、頭文件和 APXS 工具程序。如果你打算載入額外的模塊(除了該產(chǎn)品所提供的),你需要它。 嘿嘿,如果裝PHP時,不要使用TAR包的HTTPD,那就可以使用--with-apxs2=/usr/sbin/apxs.關于此的安裝另文說明)
httpd-manual-2.2.3-11.el5_1.centos.3

2、[root@rpm-mssql ~]# rpm -aq |grep php
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
你并不需要安裝如此之多,根據(jù)自已的需求,安裝。因為我是系統(tǒng)安裝時定制安裝成LAMP環(huán)境的。

3、[root@rpm-mssql ~]# rpm -aq |grep unixODBC
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數(shù)據(jù)源的工具。呵呵,在GNOME中也能用的。)

OK,mysql的安裝包我不多說,因為這里主要是使用ODBC(DSN數(shù)據(jù)源)在LAMP環(huán)境下PHP連MS SQL的。

4、安裝要求的包:
freetds-0.6.tar.gz?? [url]http://www.ibiblio.org/pub/Linux/ALPHA/freetds/stable/[/url]
unixODBC-kde-2.2.11-7.1
unixODBC-devel-2.2.11-7.1.i386.rpm???? yum install -y unixODBC-devel [url]http://mirror.centos.org/centos/5.1/os/i386/CentOS/[/url]


三、安裝、測試和配置:
1、安裝freetds(均是在root用戶下,如果你在其它用戶下,記得在運行make install時su - root)
注:在系統(tǒng)安裝時要安裝上GCC編譯器等開發(fā)工具及庫。不過,在CentOs下少什么就用yum來安裝啦。
注:同樣的條件可以安裝在REDHAT AS5.1 及AS5下。

[root@rpm-mssql freetds-0.64]# tar zxvf freetds-0.64.tar.gz
[root@rpm-mssql ~]# cd freetds-0.64
[root@rpm-mssql freetds-0.64]# ./configure --with-tdsver=7.0 --with-unixODBC

以下的要在root用戶下執(zhí)行,尤其是make install
[root@rpm-mssql freetds-0.64]# make;make install
[root@rpm-mssql freetds-0.64]# make clean
ok,現(xiàn)在已安裝好啦。這時會在/usr/local/etc生成freetds.conf文件
[root@rpm-mssql freetds-0.64]# cd /usr/local/etc
[root@rpm-mssql etc]# ll
total 12
-rw-r--r-- 1 root root 3572 Jan 24 19:13 freetds.conf
-rw-r--r-- 1 root root??362 Jan 24 19:13 locales.conf
-rw-r--r-- 1 root root??219 Jan 24 19:13 pool.conf

可以使用ODBCConfig來配置啦
注,在安裝unixODBC unixODBC-devel后,就會在/etc生成兩個文件odbc.ini odbcinst.ini:
[root@rpm-mssql freetds-0.64]# ll /etc/od
odbc.ini???????????? odbcinst.ini.rpmnew??oddjobd.conf.d/
odbc.ini.rpmnew??????oddjob/??????????????
odbcinst.ini???????? oddjobd.conf????

2、測試和配置
A、安裝好freetds后,先使用tsql來測試下:
[root@rpm-mssql etc]# /usr/local/bin/tsql -S 211.103.155.xxx -U sa Password:password (xxx是三個數(shù)字,為了安全,變了。而:后的password為真實的SA的密碼)
locale is "en_US.UTF-8"
locale charset is "UTF-8"
Password:?? (這里還要再輸入一次密碼)
1>
如果你足夠幸運,呵呵,就會出現(xiàn) “1>” 說明你之前的編譯正確啦。??
接下來就開始真正的進入正題啦,配置freetds.conf

B、編輯freetds.conf(經(jīng)測試,這個步驟可以省去。因為裝freetds的目的是為了它的驅(qū)動。實際上這也暗示著大家采用rpm包安裝時需要做些什么啦)

[root@rpm-mssql etc]# vi /usr/local/etc/freetds.conf
加入如下代碼,
[MySql2k]??(在FreeTds0.64版本中,這個參數(shù)很重要。在“System DSN”中,需要用的到。這也是和之前版本的一些差別)
????????host = 211.103.155.xxx (這個是裝有sql server 2k的服務器IP,連SQL 2K5也能行)
????????port = 1433
????????tds version = 8.0

C、配置/etc/odbc.ini?? /etc/odbcinst.ini (注,為了更直觀,我使用X視窗的方式下圖形配置,當然,我也會把經(jīng)過圖形配置后的ini文件拷配過來)
這里需要用到ODBCConfig??/usr/bin/ODBCConfig
[root@rpm-mssql etc]# /usr/bin/ODBCConfig
ODBCConfig: cannot connect to X server

D、切換到X WINDOWS,前面說過,使用的是GNOME,各位亦可以使用KDE。君不見unixODBC-kde就是為KDE專門做的嘛。
[root@rpm-mssql etc]# /usr/bin/ODBCConfig后,出現(xiàn)如下圖,圖示中有說明。但要聲明的是,我使用的FreeTds的版本是0.64的,和前一版本0.63有 些使用上的差別。主要是"Servername"的變化,以及"Setup"的變化。在接下來的一系列圖示中,會分別說明。


???? 安裝FreeTds的目的,就是為了提供PHP連接MSSQL的驅(qū)動的。上面所有的動作,就是為此做準備的。驅(qū)動有了裝載的路徑,就要增加數(shù)據(jù)源,以使連接MSSQL成功。

接下來的E,F就是重點的以圖文并茂的方式來說明的。
E、圖形設置Driver的過程,就是配置/etc/odbcinst.ini的過程。
freetds0.64版本增加了對64位數(shù)據(jù)庫的支持。


下面的是圖形配置后的odbcinst.ini的文件,其中MySql2k是新增加地:
[root@rpm-mssql ~]# cat /etc/odbcinst.ini
[PostgreSQL]
Description???????????? = ODBC for PostgreSQL
Driver??????????= /usr/lib/libodbcpsqlS.so
Driver64????????????????= /usr/lib
Setup?????????? = /usr/lib
Setup64???????? = /usr/lib
UsageCount??????????????= 1
CPTimeout?????????????? =
CPReuse???????? =

[MySql2k]
Description???????????? = v0.64 with Protocol v8.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數(shù)據(jù)源建立及注意事項:
圖形設置"System DSN"的過程,是配置/etc/odbc.ini文件的過程:



下面的是圖形配置"System DSN"后,odbc.ini的文件,如果沒有或是不想安裝X 視窗的話,直接設置。
[root@rpm-mssql ~]# cat /etc/odbc.ini
[mssql]
Description???????????? = MySql2k
Driver??????????= MySql2k
Servername??????????????= MySql2k?? (這里,不要設置IP地址什么的,要和FREETDS.CONF里的設置一樣,至少我試的就是如此,在FREETDS0.63中并沒有此現(xiàn)象。)
Database????????????????=
UID???????????? = sa
PWD???????????? =
Port????????????= 1433

G、isql 測試:

成功了,呵呵,實際上這篇文章也可以就此打住啦。不過。還是實測下PHP連MS SQL的效果吧

H、php頁面測試
[root@rpm-mssql ~]# vi /var/www/html/phpmssql.php
<?
$conn_beidabiz=odbc_connect("mssql",sa,"password"); ###password,變成自己相應的直實密碼。####
{
echo "ok";
}
?>


全文到些完結,下一篇估計寫下全部是使用rpm包來安裝的方式配置php連MSSQL.

轉(zhuǎn)載于:https://blog.51cto.com/rickyfang/125837

總結

以上是生活随笔為你收集整理的CentOs下php连mssql并配置unixODBC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。