全部博文(13)
2011年(13)
分类: LINUX
2011-05-27 12:13:11
建置測試環境:
取得 Linux ISO 檔:
安裝 Trustix Linux:
只勾選基本套件, 安裝內容不到 400MB, 咻~ 一下就裝好了 :)
vi /etc/sshd_config --> PermitRootLogin yes (讓 root 可以遠端 ssh 登入)
chkconfig sshd on
service sshd startvi /etc/locales.conf --> 找到 # zh_TW BIG5, 把註解符號 ( # ) 拿掉
locales-gen (讓系統 locale 支援 zh_TW 繁體中文)安裝 :
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib && make && make install
安裝 :
./configure --prefix=/usr/local/httpd --enable-so --enable-modules=so && make && make install
安裝 :
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-sybase=/usr/local/freetds && make && make install
cp php.ini-dist /usr/local/php/lib/php.ini
FreeTDS tsql 連結 MS-SQL Server 2000 測試結果:
./tsql -H
-p 1433 -U sa 不管 LANG 設定為何, 皆能顯示中文資料.
./tsql -S
-U sa 當 freetds.conf [serv] 區塊設有 tds version = 8.0 時, 需 export LANG=zh_TW 才能顯示中文資料;
若無 tds version 設定, 則不管 LANG 設定為何, 皆能顯示中文資料.
PHP mssql_connect() 連結 MS-SQL Server 2000 測試結果:
PHP configure 參數為: --with-mssql 時, 無法連結 MS-SQL 資料庫. (Unable to connect to server)
PHP configure 參數為: --with-sybase 時, 只能以 IP 連結, 使用 server_name 時會 hang 住,
除非在 /etc/hosts 加入 server_name 和其對應 IP. 看來它並不會去讀取 freetds.conf 設定檔 :(
此外, query 的資料有中文內容時, 會出現 Some character could not be converted into client's character set
的警告訊息. 雖然可以在 php.ini 設定 error_reporting = E_ERROR 讓它不顯示警告訊息, 不過中文字還是會變成問號.若 PHP configure 參數: --with-mssql 和 --with-sybase 都指向 freetds 路徑, 執行時會在
httpd error_log 出現 duplicate name 的錯誤訊息, 其餘症狀同上述 --with-sybase 部份.
後記:
看來 FreeTDS 似乎在 Red Hat / Fedora 平台上比較正常些...
雖然沒能測出如何在 Trustix 平台以 PHP 透過 FreeTDS 讀出並顯示中文資料, 但至少又認識了一個不錯的 Linux 套件.
小而美的 Trustix Linux 真的挺適合拿來當 Linux Server 或拿來做實驗, 我已經喜歡上它了 :P
其實 PHP 連結 MS-SQL Server 還有許多解決方案, 像 、new COM("ADODB.Connection")、, 再不然就乖乖的用 IIS + ASP 吧...
順帶一提, 1.0.6 中/英文版已經在 2005/07/20 同步推出囉!