PHP天然就對MySQL有良好的支援,但是想要用PHP對SQL Server進行操作,則需要花點時間了。今天剛好團隊裡的一個專案需要用PHP對SQL Server進行操作,遂幫忙配置好環境。
首先說明下,伺服器的系統版本為SUSE Linux Enterprise Server 10 SP3。
1. 安裝FreeTDS
地址:FreeTDS
複製程式碼 程式碼如下:
wget
tar zxvf
cd freetds-0.82
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix
make && make install
成功安裝完,最好更新下動態連線庫快取:
複製程式碼 程式碼如下:
echo "/usr/local/freetds/lib" >> /etc/
ldconfig
2. 配置FreeTDS及連線測試
FreeTDS的配置檔案放在安裝目錄的etc裡,根據第一步的configure引數,我們FreeTDS安裝在/usr/local/freetds:
複製程式碼 程式碼如下:
vim /usr/local/freetds/etc/
由於不太清楚FreeTDS的具體有哪些可配置項,這裡就不深入了,但是提供個比較重要的配置,用來解決中文亂碼的問題。在配置檔案新增如下語句:
複製程式碼 程式碼如下:
client charset = utf8
然後,我們使用tsql命令測試下是否能正常連線上SQL Server資料庫:
複製程式碼 程式碼如下:
cd /usr/local/freetds/bin
./tsql -H -p 1433 -U sa -P 123456
正常連線的話應該顯示如下語句:
複製程式碼 程式碼如下:
locale is "zh_-8"
locale charset is "UTF-8"
1>
3. 安裝php的l擴充套件
伺服器上的php版本為5.3.13,php已安裝在/usr/local/services/php下,擴充套件的目錄為/usr/local/services/php/extensions。下面是安裝mssql擴充套件的方法:
複製程式碼 程式碼如下:
cd php-5.3.13/ext/mssql/
/usr/local/services/php/bin/phpize
./configure --with-php-config=/usr/local/services/php/bin/php-config --with-mssql=/usr/local/freetds
make #生成擴充套件檔案,放在當前目錄的module資料夾下
cp modules/ /usr/local/services/php/extensions/ #把擴充套件檔案複製到PHP的擴充套件目錄下
4. 配置並驗證安裝結果
開啟,新增如下擴充套件語句:
複製程式碼 程式碼如下:
extension=
重啟PHP服務後(伺服器用的是php-fpm),列印phpinfo,出現如下配置則代表php能正常操作SQL Server了。