解决 call to undefined function mssql_connect 报错

起因:

项目中如果要连接 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
 
 

看一下

 

 

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

 

 

 
 

 

posted @ 2018-05-09 21:05  魏什么魏什么啊  阅读(5113)  评论(0编辑  收藏  举报