centos6.2下php连接microsoft sql server

系统:centos6.2

php版本:php5.3.3

1.下载freetds,这个软件在linux提供对mssql,sybase访问的。

下载地址:http://www.freetds.org/

安装好后,会在/usr/local/etc目录下生成freetds.conf设置文件。

如果是连接mssql 2005以上版本,需要将 tds version 改成7.2,注意要去掉前面的封号。


2.我使用的是pdo来连接,具体的驱动使用pdo_dblib,打开phpinfo()查看,如果没有这个扩展,则需要手动编译安装

2.1 下载php_5_3_3源码,需要用svn签出,php源码地址:http://www.php.net/svn.php

2.2 进入php扩展目录pdo_dblib ,运行phpize命令,则会在该目录下生成配置等相关文件,然后执行./configure, make, make test, make install就可以安装好了。

常见问题:phpize命令没有找到?这个需要安装php开发版本,php-devel,直接yum安装就OK了。

2.3 在/etc/php.d目录下新建里一个pdo_dblib.ini文件,内容如下:

; Enable pdo_dblib extension module
extension=pdo_dblib.so

然后重新启动apache,建立测试文件,内容如下:

$pdo = new PDO("dblib:host=$host:$port;dbname=$db", $username, $password);

如果没有问题就能正常访问了。


常见问题:SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or does not exist (severity 9) 提示服务器不存在

查看host, port是否有误?是否是被selinux阻挡?

如果是后面一个原因,暂时的处理办法就是先关掉,关掉方法如下:

打开 /etc/selinux/config ,将SELINUX设置为disabled,然后重新启动,再试试看,基本就没什么问题了。


你可能感兴趣的:(pdo_dblib,mssql,linux,php)