起因:
项目中如果要连接 sql server 数据库 如果没有安装mssql扩展 就会报以下错误
这个时候首先看以下服务器是否安装mssql扩展
这个时候最后在服务器上 用phpinfo看以下
并且要注意的是 这个php版本号
因为同事之前在服务器上执行 php -m 是显示有mssql扩展的
如下
但是 其实默认php -m走的是老版本 而在项目中用的是PHP5.6
这样要到PHP56下看看
执行 cd /usr/local/php56/bin
执行 php -m 发现是没有mssql扩展的
找到问题的原因 就开始解决
因为当时用的是用编译的方式安装的 所以现在要重写编译扩展
具体步骤
找到当时安装的php56源码包
cd /user/local/src/php-5.6.4
因为mssql扩展因为着急用就直接安装了 没有截图记录
下面拿opcache这个扩展做个测试
首先 进入目录中/usr/local/src/php-5.6.4/ext/opcache
然后使用phpsize生成config命令
这里必须指定现在服务器上用的php正确版本的路径执行,如果直接phpsize它就走老的版本
执行:sudo /usr/local/php56/bin/phpize
然后就生成了configure命令

接下来使用./configure命令 如果直接使用会报错类型以下图片错误

所以就按照错误提示把路径写全

要想知道自己执行的这步对不对 使用 echo $?
如果返回0说明安装正确

可以继续往下执行
接着执行make命令
要使用sudo make 否则会报错

最后执行 sudo make install

检查扩展安装是否成功

说明已经安装完成
可以看到有已经安装的mssql.so
在php.ini配置下扩展

重启apache

看一下
以后就是重新编译 安装需要的扩展的步骤