公司项目需要连接sql server,部署在centos上,使用的是laravel框架,支持的数据库驱动是sqlsrv,mssql在7.0已经被移除。
服务器原来有apache+php5.3,端口是80,对于laravel来说php版本太低,采取的方案是增加nginx+php7.0,端口使用8000,简单编译,安装。php默认没有sqlsrv模块,需要额外编译。
使用/php7.0路径/bin/pecl install sqlsrv。遇到两个问题,第一个:cc1plus: 错误:无法识别的命令行选项“-std=c++11”,原因是gcc版本太低,不支持c++11,采用这位同学的办法解决,即升级gcc版本,我升到了4.8.5,升级gcc版本 。
第二个是/tmp/pear/temp/sqlsrv/shared/xplat.h:30:17: 致命错误:sql.h:没有那个文件或目录
#include <sql.h>
编译中断。
make: *** [conn.lo] 错误 1
ERROR: `make' failed
提示缺少头文件,直接安装unixodbc的工具包即可,yum install unixODBC-devel。
然后发现还是不行,研究了下发现是需要在在Linux上安装SQL Server的Microsoft ODBC驱动程序,