說明:
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原創内容版權所有,轉載請注明出處及原文鍊
[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 #測試,提示輸入資料庫密碼,出現下面界面,配置成功
cd /usr/local/freetds/bin
./tsql -s 192.168.21.134 -p 1433 -u sa -p 123456 -d master #測試,出現下面界面,配置成功
二、配置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]完全一樣
在浏覽器中打開,出現下面的界面,連接配接成功
可以在建立一個檔案
vi index.php
phpinfo();
在浏覽器中打開,能找到mssql,說明配置成功,如下圖所示
至此,linux下php連接配接sql server 2000資料庫配置完成