1. 程式人生 > >linux編譯安裝mssql客戶端和配置php連接mssql

linux編譯安裝mssql客戶端和配置php連接mssql

linux 客戶端

凡是連接數據庫,必須安裝客戶端,我一般寫博客都不寫原理,但是後來發現回頭看自己寫的自己都看不懂,所以這章博客會多一點原理性的東西。


數據庫的連接一般都是在客戶端上完成的,MySQL也不例外,安裝mysql時一般都會這麽安裝:

#yum install mysql mysql-server

上面的mysql就是安裝的客戶端,mysql-server就是服務端,不安裝客戶端(mysql)就沒辦法執行mysql連接命令:mysql -u user -p pass -h -P port

而sqlserver同樣需要客戶端,下面講的就是在linux下安裝sqlserver 2008的客戶端freetds


安裝環境:

#centos6.8
#php5.6
#sqlserver2008


  1. 下載freetds,一般都會在官網下載,這個開源的想必沒人會用盜版。


wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
#linux下載有點慢,可以在windows上下載,然後再上傳至linux上。
tar zxf freetds-patched.tar.gz
cd freetds-1.00.27
./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib
make && make install


2.導入ldconfig

 echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf
 ldconfig


3.查看安裝的版本:

/usr/local/freetds/bin/tsql -C

4.測試能否連接sqlserver:

/usr/local/freetds/bin/tsql -H 10.10.10.10 -p 1433 -U sa -P password

5.添加PHP擴展mssql和pdo_dblib,這是php兩種連接mssql的方式,只安裝mssql也可以。

註意:一般安裝php會選擇兩種方式,一種是編譯安裝,一種是yum安裝。下面分別來講解兩種方式的安裝方式:

1)yum安裝的php

#很簡單,直接yun安裝mssql插件即可:

yum install php-pdo -y
yum install php-mssql -y

2)編譯安裝的php

#進入到php的安裝包中,安裝mssql插件
cd /home/tools/php-5.6.20/ext/mssql/
/usr/local/php/bin/phpize 
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/ 
make && make install


#安裝pdo_dblib
cd /home/tools/php-5.6.20/ext/pdo_dblib/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/
make && make install

在php.ini中添加mssql和pdo_dblib:

mv /usr/local/php/lib/php/extensions/no*/mssql /usr/local/php/lib/php/extensions/
mv /usr/local/php/lib/php/extensions/no*/pdo_dblib /usr/local/php/lib/php/extensions/
#把前面安裝的擴展插件生成的文件移動到extension目錄下
vi /usr/local/php/lib/php.ini
extension_dir = "/usr/local/php/lib/php/extensions"
extension = "mssql.so"  
extension = "pdo_dblib.so"


3)重啟php,看擴展插件有沒有生效:

#編譯一個php測試文件:

vi /www/html/test.php
<?php
phpinfo();
?>

用瀏覽器打開上面的測試文件,會看到如下信息,代表成功安裝:

http://ip/test.php

技術分享


6.測試mssql連接sqlserver2008:

#編輯一個測試文件:

vi /www/html/connect_sql.php
<?php  
header("Content-type: text/html; charset=utf-8");    
$msdb=mssql_connect("10.10.10.10:1433","sa","password");  
if (!$msdb) {  
    echo "connect sqlserver error";  
    exit;  
    }  
mssql_select_db("test",$msdb);  
$result = mssql_query("SELECT top 5 * FROM student", $msdb);  
while($row = mssql_fetch_array($result)) {  
 print_r($row);  
}  
mssql_free_result($result);  
?>

#如果內容是sqlserver test數據庫,student表內的內容代表php成功連接到數據庫。


7.測試pdo_dblib連接sqlserver2008:

#創建一個測試文件
vi /www/html/connect_db.php
<?php  
header("Content-type: text/html; charset=utf-8");  
  try {  
    $hostname = "10.10.10.10";  
    $port = 1433;  
    $dbname = "test";  
    $username = "sa";  
    $pw = "password";  
    $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");  
  } catch (PDOException $e) {  
    echo "Failed to get DB handle: " . $e->getMessage() . "\n";  
    exit;  
  }  
   
  $stmt = $dbh->prepare("SELECT top 5 * FROM student");  
  $stmt->execute();  
  while ($row = $stmt->fetch()) {  
    print_r($row);  
  }  
  unset($dbh); unset($stmt);  
  
?>

#如果內容是sqlserver test數據庫,student表內的內容代表php成功連接到數據庫。


本文出自 “王家東哥” 博客,謝絕轉載!

linux編譯安裝mssql客戶端和配置php連接mssql