post | sidebar | footer

February 24, 2009

PHP 與 MS SQL Server 間的溝通

前言
在 Linux 及 BSD 環境上,PHP 與 MS SQL 間溝通的解決方案大多透過 FreeTDS,關於 FreeTDS 可見 http://www.freetds.org

當然安裝方式有很多,這次主要利用 apt 套件管理系統來做安裝。通常在安裝 FreeTDS 時,大多已經有個穩定的 Apache + PHP 環境在運作了 (當然這個環境也是用 apt 套件管理系統建置)。所以這次的安裝,目的是要產生 FreeTDS 的 PHP extension 外掛在 PHP 上。



安裝環境
OS: Ubuntu 8.10
Web Service: Apache 2.2.9
Language: PHP 5.2.6
Database: MS SQL 2005

安裝流程
1. 首先先更新套件索引
% sudo apt-get update

2. 安裝 FreeTDS 相關套件
% sudo apt-get install freetds-dev tdsodbc

3. 修改 FreeTDS 設定檔
% joe /etc/freetds/freetds.conf
[global]
tds version = 4.2
text size = 64512

[database alias name]
host = database ip / host
port = database port
client charset = UTF-8
tds version = 8.0


4. 安裝 PHP5 關於 Sybase/MSSQL 的 module
% sudo apt-get install php5-sybase

5.檢查到目前為止有關 PHP 5 module 的相關性
% sudo apt-get build-dep php5

6. 把 PHP 5 SOURCE 及相關 module 抓下來
% sudo apt-get source php5

7.  重新 complier PHP 5 及相關 module
% cd php5-5.2.6
% sudo dpkg-buildpackage

8. 我們只要 Sybase/MSSQL module,所以將其安裝進系統就好
% cd ..
% sudo dpkg –i php5-sybase_5.2.6-2ubuntu4.1_i386.deb

9. 重啟 Apache
% sudo /etc/init.d/apache2 restart

後話
本來我是習慣用 tarball 的方式來安裝。因為要適應在 ubuntu 環境來管理套件,所以 google 了一些網友的 apt 安裝方式。他們大多都說要再去修改 SOURCE PHP 裡的 debain/modulelist 及 debain/rules。

可是如果依照上面流程去安裝,在 debain/modulelist 及 debain/rules 裡就已經會將相關設定加好了。我並沒有去查是因為版本關係或是因為先裝 php5-sybase 再做 build-dep php5 的關係。

在此註明。

No comments: