CentOS 5.4 Linux 下的 PHP(FastCGI) 需要連接相關部門的SQL Server 2000數據庫,配置了擴展FreeTDS擴展。
1、編譯安裝FreeTDS
- mkdir -p /data0/software/
- cd /data0/software/
- wget ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
- tar zxvf freetds-stable.tgz
- cd freetds-0.82/
- ./configure --prefix=/usr/local/webserver/freetds --with-tdsver=8.0 --enable-msdblib
- make && make install
- cd ../
- echo "/usr/local/webserver/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf
- ln -s /usr/local/webserver/freetds/lib/libsybdb.so.5.0.0 /usr/local/webserver/freetds/lib/libsybdb.so.4
- /sbin/ldconfig
- rm -f /usr/local/webserver/freetds/etc/freetds.conf
- vi /usr/local/webserver/freetds/etc/freetds.conf
輸入以下內容:
引用
- [global]
- # TDS protocol version
- ; tds version = 4.2
- # Whether to write a TDSDUMP file for diagnostic purposes
- # (setting this to /tmp is insecure on a multi-user system)
- ; dump file = /tmp/freetds.log
- ; debug flags = 0xffff
- # Command and connection timeouts
- ; timeout = 10
- ; connect timeout = 10
- # If you get out-of-memory errors, it may mean that your client
- # is trying to allocate a huge buffer for a TEXT field.
- # Try setting 'text size' to a more reasonable limit
- text size = 64512
- host = mssql.yourdomain.com
- port = 1433
- tds version = 8.0
- client charset = UTF-8
2、編譯安裝PHP自帶MSSQL擴展
進入本地已存在的php-5.2.XX源碼包目錄:
- cd /data0/software/php-5.2.XX/ext/mssql/
- /usr/local/webserver/php/bin/phpize
- ./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-mssql=/usr/local/webserver/freetds/
- make && make install
3、在php.ini配置文件中增加mssql.so
- vi /usr/local/webserver/php/etc/php.ini
增加一行:
引用
- extension = "mssql.so"
4、重啟PHP FastCGI
- /usr/local/webserver/php/sbin/php-fpm restart
5、測試文件(test_mssql.php):
- header("Content-type: text/html; charset=utf-8");
- $msdb=mssql_connect("mssql.yourdomain.com:1433","username","password");
- if (!$msdb) {
- echo "connect sqlserver error";
- exit;
- }
- mssql_select_db("database_name",$msdb);
- $result = mssql_query("SELECT top 5 * FROM table", $msdb);
- while($row = mssql_fetch_array($result)) {
- var_dump($row);
- }
- mssql_free_result($result);
- ?>