mssql的远程连接需要在在sql服务器端做很多配置,这里先略过,这里只讲下linux服务器方面的配置.
centos7里首先需要安装freeTDS,这是一个类库,可以提供从linux下访问sql server的功能.php的mssql和pdo-mssql都需要通过freetds来连接sql server.
安装很简单:
http://www.freetds.org/ 下载,下载完成 tar一下嘛,然后configure然后make && make install,这都是老套路了,唯一注意的是 configure的参数
./configure --prefix=/usr/local/freetds --enable-msdblib --with-tdsver=8.0
--with-tdsver这个不能丢,不同的freetds版本连接sqlserver端口不同, --enable-msdblib是安装php-mssql的必选项.
安装完成后cd /usr/local/freetds/etc,vim一下freetds.conf,增加一个mssql的服务器设置项,上面有示例,也很简单,
注意的是:
dump file = /tmp/freetds.log” #前面的冒号去掉,打开这个log日志
tds version = 7.1 #我设置的是7.1,打开log日志一看,连接的是1433端口,设置8.0,连接的却不是1433端口,大家可以自己试下
记住新设置的名字,后面会用到这个名字的.如:
[yunda]
host = xxx.xxx.xxx.xxx
port = 1433
tds version = 7.1
这个yunda 就是后面要用到的名字.
下来安装php的mssql扩展,没有源代码的找个php同版本的源代码下载下来.
进入源代码目录/ext/mssql目录.
/usr/bin/php/phpize
./configure --with-php-config=/opt/lampp/bin/php-config --with-mssql=/usr/local/freetds/
make && make install
注意的是,这个php-config可不是你的php配置文件php.ini的位置,这个就是php-config文件的位置.
然后把mssql.so添加到php.ini里
echo extension=mssql.so >> /opt/lampp/etc/php.ini
重启动一下服务就可以了,在连接是的时候填写
mssql_connect("yunda","sa","xxxxxxx")
如果你要连接dblib,进入php源代码目录的php-dblib