天天看點

linux php 連接配接sql server2000

說明:

linux伺服器系統:centos 5.5

web環境:lamp或者lnmp

windows伺服器系統:windows server 2003

windows伺服器ip位址:192.168.21.134

資料庫賬号:sa

資料庫密碼:123456

實作目的:linux伺服器中的php程式能夠連接配接到windows伺服器中的sql server 2000資料庫

具體步驟:

一、在linux伺服器中安裝freetds

1、安裝編譯工具及驅動程式

yum install make apr* autoconf automake gcc gcc-c++ wget

2、安裝unixodbc驅動程式

yum -y install unixodbc unixodbc-devel

3、安裝freetds

cd /usr/local/src

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz #下載下傳

gunzip freetds-stable.tgz #解壓

tar -xvf freetds-stable.tar

cd freetds-0.91

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

make #編譯

make install #安裝

4、配置freetds

cp /usr/local/freetds/etc/freetds.conf /usr/local/freetds/etc/freetds.confbak #備份原有檔案

vi /usr/local/freetds/etc/freetds.conf #在最後位置修改編輯以下内容

系統運維 www.osyunwei.com 溫馨提醒:qihang01原創内容版權所有,轉載請注明出處及原文鍊

linux php 連接配接sql server2000

[192.168.21.134]

host = 192.168.21.134 #sql server 2000伺服器位址

port = 1433 #sql server 2000資料庫端口

tds version = 8.0 #8.0代表資料庫版本為sql server 2000

client charset = utf-8 #設定字元集

5、測試freetds

/usr/local/freetds/bin/tsql -s 192.168.21.134 -u sa #測試,提示輸入資料庫密碼,出現下面界面,配置成功

linux php 連接配接sql server2000

cd /usr/local/freetds/bin

./tsql -s 192.168.21.134 -p 1433 -u sa -p 123456 -d master #測試,出現下面界面,配置成功

linux php 連接配接sql server2000

二、配置linux php連接配接sql server 2000資料庫

1、php是用yum指令線上安裝

yum install php-mssql #安裝php-mssql擴充,如果提示沒有此安裝包,請先配置第三方yum源

wget http://www.atomicorp.com/installers/atomic #下載下傳

sh ./atomic #安裝

[root@huangwei bin]# sh ./atomic

ln: "/etc/system-release" 與"/etc/fedora-release" 為同一檔案

atomic free unsupported archive installer, version 2.0.12

by installing this software and by using any and all software

provided by atomicorp limited you acknowledge and agree:

this software and all software provided in this repository is 

provided by atomicorp limited as is, is unsupported and any

express or implied warranties, including, but not limited to, the

implied warranties of merchantability and fitness for a particular

purpose are disclaimed. in no event shall atomicorp limited, the

copyright owner or any contributor to any and all software provided

by or published in this repository be liable for any direct,

indirect, incidental, special, exemplary, or consequential damages

(including, but not limited to, procurement of substitute goods

or services; loss of use, data, or profits; or business interruption)

however caused and on any theory of liability, whether in contract,

strict liability, or tort (including negligence or otherwise)

arising in any way out of the use of this software, even if advised

of the possibility of such damage.

====================================================================

this software is unsupported.  if you require supported sofware

please see the url below to purchase a nucleus license and do not 

proceed with installing this package.

for supported software packages please purchase a nucleus license: 

https://www.atomicorp.com/products/nucleus.html

all atomic repository rpms are unsupported.

do you agree to these terms? (yes/no) [default: yes] yes

configuring the [atomic] yum archive for this system 

installing the atomic gpg key: ok

downloading atomic-release-1.0-19.fc20.art.noarch.rpm: 

ok

the atomic rocket turtle archive has now been installed and configured for your system

the following channels are available:

  atomic          - [activated] - contains the stable tree of art packages

  atomic-testing  - [disabled]  - contains the testing tree of art packages

  atomic-bleeding - [disabled]  - contains the development tree of art packages

yum install php-mssql #再次執行

[root@iz25vqhgbx2z freetds-0.91]# yum install php-mssql

loaded plugins: security

atomic                                                   | 3.4 kb     00:00     

atomic/primary_db                                        | 844 kb     00:10     

setting up install process

resolving dependencies

--> running transaction check

---> package php-mssql.x86_64 0:5.3.3-3.el6 will be updated

---> package php-mssql.x86_64 0:5.4.31-37.el6.art will be an update

--> processing dependency: php-pdo(x86-64) = 5.4.31-37.el6.art for package: php-mssql-5.4.31-37.el6.art.x86_64

---> package php-pdo.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-pdo.x86_64 0:5.4.31-37.el6.art will be an update

--> processing dependency: php-common(x86-64) = 5.4.31-37.el6.art for package: php-pdo-5.4.31-37.el6.art.x86_64

---> package php-common.x86_64 0:5.3.3-27.el6_5.1 will be updated

--> processing dependency: php(api) = 20090626 for package: php-mcrypt-5.3.3-3.el6.x86_64

--> processing dependency: php(zend-abi) = 20090626 for package: php-mcrypt-5.3.3-3.el6.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-gd-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-cli-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-bcmath-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-xml-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-ldap-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-odbc-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-xmlrpc-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-imap-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-5.3.3-27.el6_5.1.x86_64

--> processing dependency: php-common(x86-64) = 5.3.3-27.el6_5.1 for package: php-mbstring-5.3.3-27.el6_5.1.x86_64

---> package php-common.x86_64 0:5.4.31-37.el6.art will be an update

---> package php.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-bcmath.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-bcmath.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-cli.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-cli.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-gd.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-gd.x86_64 0:5.4.31-37.el6.art will be an update

--> processing dependency: libt1.so.5()(64bit) for package: php-gd-5.4.31-37.el6.art.x86_64

---> package php-imap.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-imap.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-ldap.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-ldap.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-mbstring.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-mbstring.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-mcrypt.x86_64 0:5.3.3-3.el6 will be updated

---> package php-mcrypt.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-mysql.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-mysql.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-odbc.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-odbc.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-xml.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-xml.x86_64 0:5.4.31-37.el6.art will be an update

---> package php-xmlrpc.x86_64 0:5.3.3-27.el6_5.1 will be updated

---> package php-xmlrpc.x86_64 0:5.4.31-37.el6.art will be an update

---> package t1lib.x86_64 0:5.1.2-6.el6_2.1 will be installed

--> finished dependency resolution

dependencies resolved

================================================================================

 package             arch          version                  repository     size

updating:

 php-mssql           x86_64        5.4.31-37.el6.art        atomic         66 k

installing for dependencies:

 t1lib               x86_64        5.1.2-6.el6_2.1          base          160 k

updating for dependencies:

 php                 x86_64        5.4.31-37.el6.art        atomic        2.7 m

 php-bcmath          x86_64        5.4.31-37.el6.art        atomic         60 k

 php-cli             x86_64        5.4.31-37.el6.art        atomic        2.6 m

 php-common          x86_64        5.4.31-37.el6.art        atomic        932 k

 php-gd              x86_64        5.4.31-37.el6.art        atomic        143 k

 php-imap            x86_64        5.4.31-37.el6.art        atomic         79 k

 php-ldap            x86_64        5.4.31-37.el6.art        atomic         62 k

 php-mbstring        x86_64        5.4.31-37.el6.art        atomic        944 k

 php-mcrypt          x86_64        5.4.31-37.el6.art        atomic         51 k

 php-mysql           x86_64        5.4.31-37.el6.art        atomic        136 k

 php-odbc            x86_64        5.4.31-37.el6.art        atomic         78 k

 php-pdo             x86_64        5.4.31-37.el6.art        atomic        120 k

 php-xml             x86_64        5.4.31-37.el6.art        atomic        171 k

 php-xmlrpc          x86_64        5.4.31-37.el6.art        atomic         70 k

transaction summary

install       1 package(s)

upgrade      15 package(s)

total download size: 8.3 m

is this ok [y/n]: y

downloading packages:

(1/16): php-5.4.31-37.el6.art.x86_64.rpm                 | 2.7 mb     00:09     

(2/16): php-bcmath-5.4.31-37.el6.art.x86_64.rpm          |  60 kb     00:00     

(3/16): php-cli-5.4.31-37.el6.art.x86_64.rpm             | 2.6 mb     00:22     

(4/16): php-common-5.4.31-37.el6.art.x86_64.rpm          | 932 kb     00:02     

(5/16): php-gd-5.4.31-37.el6.art.x86_64.rpm              | 143 kb     00:00     

(6/16): php-imap-5.4.31-37.el6.art.x86_64.rpm            |  79 kb     00:00     

(7/16): php-ldap-5.4.31-37.el6.art.x86_64.rpm            |  62 kb     00:00     

(8/16): php-mbstring-5.4.31-37.el6.art.x86_64.rpm        | 944 kb     00:02     

(9/16): php-mcrypt-5.4.31-37.el6.art.x86_64.rpm          |  51 kb     00:00     

(10/16): php-mssql-5.4.31-37.el6.art.x86_64.rpm          |  66 kb     00:00     

(11/16): php-mysql-5.4.31-37.el6.art.x86_64.rpm          | 136 kb     00:00     

(12/16): php-odbc-5.4.31-37.el6.art.x86_64.rpm           |  78 kb     00:00     

(13/16): php-pdo-5.4.31-37.el6.art.x86_64.rpm            | 120 kb     00:00     

(14/16): php-xml-5.4.31-37.el6.art.x86_64.rpm            | 171 kb     00:01     

(15/16): php-xmlrpc-5.4.31-37.el6.art.x86_64.rpm         |  70 kb     00:00     

(16/16): t1lib-5.1.2-6.el6_2.1.x86_64.rpm                | 160 kb     00:00     

--------------------------------------------------------------------------------

total                                           166 kb/s | 8.3 mb     00:51     

warning: rpmts_hdrfromfdno: header v3 rsa/sha1 signature, key id 4520afa9: nokey

retrieving key from file:///etc/pki/rpm-gpg/rpm-gpg-key.art.txt

importing gpg key 0x5ebd2744:

 userid : atomic rocket turtle <[email protected]>

 package: atomic-release-1.0-19.el6.art.noarch (installed)

 from   : /etc/pki/rpm-gpg/rpm-gpg-key.art.txt

retrieving key from file:///etc/pki/rpm-gpg/rpm-gpg-key.atomicorp.txt

importing gpg key 0x4520afa9:

 userid : atomicorp (atomicorp official signing key) <[email protected]>

 from   : /etc/pki/rpm-gpg/rpm-gpg-key.atomicorp.txt

running rpm_check_debug

running transaction test

transaction test succeeded

running transaction

warning: rpmdb altered outside of yum.

  updating   : php-common-5.4.31-37.el6.art.x86_64                         1/31 

warning: /etc/php.ini created as /etc/php.ini.rpmnew

  updating   : php-pdo-5.4.31-37.el6.art.x86_64                            2/31 

  updating   : php-cli-5.4.31-37.el6.art.x86_64                            3/31 

  installing : t1lib-5.1.2-6.el6_2.1.x86_64                                4/31 

  updating   : php-gd-5.4.31-37.el6.art.x86_64                             5/31 

  updating   : php-5.4.31-37.el6.art.x86_64                                6/31 

  updating   : php-mssql-5.4.31-37.el6.art.x86_64                          7/31 

  updating   : php-odbc-5.4.31-37.el6.art.x86_64                           8/31 

  updating   : php-mysql-5.4.31-37.el6.art.x86_64                          9/31 

  updating   : php-bcmath-5.4.31-37.el6.art.x86_64                        10/31 

  updating   : php-xml-5.4.31-37.el6.art.x86_64                           11/31 

  updating   : php-imap-5.4.31-37.el6.art.x86_64                          12/31 

  updating   : php-mcrypt-5.4.31-37.el6.art.x86_64                        13/31 

  updating   : php-mbstring-5.4.31-37.el6.art.x86_64                      14/31 

  updating   : php-ldap-5.4.31-37.el6.art.x86_64                          15/31 

  updating   : php-xmlrpc-5.4.31-37.el6.art.x86_64                        16/31 

  cleanup    : php-5.3.3-27.el6_5.1.x86_64                                17/31 

  cleanup    : php-mysql-5.3.3-27.el6_5.1.x86_64                          18/31 

  cleanup    : php-odbc-5.3.3-27.el6_5.1.x86_64                           19/31 

  cleanup    : php-mssql-5.3.3-3.el6.x86_64                               20/31 

  cleanup    : php-pdo-5.3.3-27.el6_5.1.x86_64                            21/31 

  cleanup    : php-cli-5.3.3-27.el6_5.1.x86_64                            22/31 

  cleanup    : php-xmlrpc-5.3.3-27.el6_5.1.x86_64                         23/31 

  cleanup    : php-ldap-5.3.3-27.el6_5.1.x86_64                           24/31 

  cleanup    : php-gd-5.3.3-27.el6_5.1.x86_64                             25/31 

  cleanup    : php-mbstring-5.3.3-27.el6_5.1.x86_64                       26/31 

  cleanup    : php-mcrypt-5.3.3-3.el6.x86_64                              27/31 

  cleanup    : php-imap-5.3.3-27.el6_5.1.x86_64                           28/31 

  cleanup    : php-xml-5.3.3-27.el6_5.1.x86_64                            29/31 

  cleanup    : php-bcmath-5.3.3-27.el6_5.1.x86_64                         30/31 

  cleanup    : php-common-5.3.3-27.el6_5.1.x86_64                         31/31 

  verifying  : php-bcmath-5.4.31-37.el6.art.x86_64                         1/31 

  verifying  : php-mssql-5.4.31-37.el6.art.x86_64                          2/31 

  verifying  : php-xml-5.4.31-37.el6.art.x86_64                            3/31 

  verifying  : php-imap-5.4.31-37.el6.art.x86_64                           4/31 

  verifying  : php-cli-5.4.31-37.el6.art.x86_64                            5/31 

  verifying  : php-mcrypt-5.4.31-37.el6.art.x86_64                         6/31 

  verifying  : php-odbc-5.4.31-37.el6.art.x86_64                           7/31 

  verifying  : php-mbstring-5.4.31-37.el6.art.x86_64                       8/31 

  verifying  : php-pdo-5.4.31-37.el6.art.x86_64                            9/31 

  verifying  : php-mysql-5.4.31-37.el6.art.x86_64                         10/31 

  verifying  : php-gd-5.4.31-37.el6.art.x86_64                            11/31 

  verifying  : php-ldap-5.4.31-37.el6.art.x86_64                          12/31 

  verifying  : t1lib-5.1.2-6.el6_2.1.x86_64                               13/31 

  verifying  : php-common-5.4.31-37.el6.art.x86_64                        14/31 

  verifying  : php-xmlrpc-5.4.31-37.el6.art.x86_64                        15/31 

  verifying  : php-5.4.31-37.el6.art.x86_64                               16/31 

  verifying  : php-pdo-5.3.3-27.el6_5.1.x86_64                            17/31 

  verifying  : php-5.3.3-27.el6_5.1.x86_64                                18/31 

  verifying  : php-mbstring-5.3.3-27.el6_5.1.x86_64                       19/31 

  verifying  : php-odbc-5.3.3-27.el6_5.1.x86_64                           20/31 

  verifying  : php-bcmath-5.3.3-27.el6_5.1.x86_64                         21/31 

  verifying  : php-imap-5.3.3-27.el6_5.1.x86_64                           22/31 

  verifying  : php-mssql-5.3.3-3.el6.x86_64                               23/31 

  verifying  : php-xmlrpc-5.3.3-27.el6_5.1.x86_64                         24/31 

  verifying  : php-common-5.3.3-27.el6_5.1.x86_64                         25/31 

  verifying  : php-cli-5.3.3-27.el6_5.1.x86_64                            26/31 

  verifying  : php-gd-5.3.3-27.el6_5.1.x86_64                             27/31 

  verifying  : php-mysql-5.3.3-27.el6_5.1.x86_64                          28/31 

  verifying  : php-mcrypt-5.3.3-3.el6.x86_64                              29/31 

  verifying  : php-xml-5.3.3-27.el6_5.1.x86_64                            30/31 

  verifying  : php-ldap-5.3.3-27.el6_5.1.x86_64                           31/31 

dependency installed:

  t1lib.x86_64 0:5.1.2-6.el6_2.1                                                

updated:

  php-mssql.x86_64 0:5.4.31-37.el6.art                                          

dependency updated:

  php.x86_64 0:5.4.31-37.el6.art        php-bcmath.x86_64 0:5.4.31-37.el6.art  

  php-cli.x86_64 0:5.4.31-37.el6.art    php-common.x86_64 0:5.4.31-37.el6.art  

  php-gd.x86_64 0:5.4.31-37.el6.art     php-imap.x86_64 0:5.4.31-37.el6.art    

  php-ldap.x86_64 0:5.4.31-37.el6.art   php-mbstring.x86_64 0:5.4.31-37.el6.art

  php-mcrypt.x86_64 0:5.4.31-37.el6.art php-mysql.x86_64 0:5.4.31-37.el6.art   

  php-odbc.x86_64 0:5.4.31-37.el6.art   php-pdo.x86_64 0:5.4.31-37.el6.art     

  php-xml.x86_64 0:5.4.31-37.el6.art    php-xmlrpc.x86_64 0:5.4.31-37.el6.art  

complete!

[root@iz25vqhgbx2z freetds-0.91]# 

2、php是用源碼編譯安裝

cd /usr/local/src/php-5.3.15/ext/mssql #進入php源碼包的ext下mssql目錄

/usr/local/php5/bin/phpize

./configure --with-php-config=/usr/local/php5/bin/php-config --with-mssql=/usr/local/freetds #配置

注意:--with-mssql=/usr/local/freetds #是指freetds的安裝路徑

vi /usr/local/php5/etc/php.ini #編輯,在最後位置添加下面一行

extension = "mssql.so"

:wq! #儲存退出

3、重新開機lamp或者lnmp

service httpd restart #重新開機apache

service php-fpm restart #重新開機php-fpm

三、測試php連接配接sql server 2000資料庫

進入php程式目錄,建立一個測試檔案

cd /usr/local/nginx/html #請改為自己的網站目錄

vi sql.php #添加以下内容

<?php

$mssql=mssql_connect("192.168.21.134","sa","123456");

if ($mssql) {

echo "connent mssql succeed";

}

else {

echo "connent mssql error!";

?>

注意:這裡的192.168.21.134必須要和/usr/local/freetds/etc/freetds.conf中的[192.168.21.134]完全一樣

在浏覽器中打開,出現下面的界面,連接配接成功

linux php 連接配接sql server2000

可以在建立一個檔案

vi index.php

phpinfo();

在浏覽器中打開,能找到mssql,說明配置成功,如下圖所示

linux php 連接配接sql server2000

至此,linux下php連接配接sql server 2000資料庫配置完成