服务器环境 : CentOS 7.x PHP 5.2 编译安装
前期准备 : 服务器要联网,以便获取freetds安装包,建议先下载。
开始动手:
1、第一步
登陆服务器,建议root权限。下载并安装freetds。这个是Linux与Mysql进行 数据交互的一个中间件。操作如下:
//下载的速度可能会比较慢,可以用本地下载下来后,再上传到服务器上
// wget 连接带用户名密码ftp服务器的方法 wget ftp://ip:port/file.tar --ftp-user=username --ftp-password=password
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
//解压缩文件
tar -zxvf freetds-patched.tar.gz
//列出解压缩的文件夹
ll
//进入文件夹
cd freetds-1.1.6 //这边你有可能会下载到最新版本
./configure --prefix=/usr/local/freetds --enable-msdblib
make & make install
//至此,freetds 的中间件安装成功
2. 第二步:
安装Php的mssql扩展和PDO_dblib扩展
//进入php52的安装目录,配置并安装mssql扩展
cd /www/server/php/56/src/ext/mssql
//指定源文件安装配置包位置
/www/server/php/52/bin/phpize
//编译前的配置
./configure --with-php-config=/www/server/php/52/bin/php-config --with-mssql=/usr/local/freetds/
make && make install
//安装mssql扩展
cd /www/server/php/56/src/ext/pdo_dblib/
/www/server/php/56/bin/phpize
./configure --with-php-config=/www/server/php/56/bin/php-config --with-pdo-dblib=/usr/local/freetds/
make && make install
//同理,安装pdo_dblib扩展
3.第三步:
如果安装完pdo_dblib和mssql ,可以在 php的扩展目录下找到 pdo_dblib.so和mssql.so两个文件。现在需要更改php.ini配置。
vi php.ini
//修改配置文件,也可以在宝塔面板中修改相应的php配置文件。
//在php.ini文件下添加下面这两句
extension=pdo_dblib.so
extension=mssql.so
4.第四步:
更改freetds的配置文件。freetds的配置文件,在刚才你安装的目录下。
操作如下:
cd /usr/local/freetds/etc
//切换至freetds的目录
vi freetds.conf
//修改配置
//更改mssql服务器配置,如:
host = 127.0.0.1 //这里填mssql的服务器IP
port = 1433 //端口号
tds version = 7.4 //tds版本号,支持mssql2012及以上版本
client charset = CP936 //客户端编码
5.重启服务
最后一步,重启对应的php-fpm,如
service php-fpm-52 restart
现在,你可以通过phpinfo查看,是否有正确配置了。
如果报错 修改字符集解决
php的字符集和freetds的字符集保持一致(php.ini/freetds.conf)(不能是UTF-8)