ubuntu下php连接sqlserver

新公司数据库用sqlserver,费劲的在ubuntu下给php装了连接sqlserver的扩展。

首先确认下你的php版本,目前我看到的是扩展只支持7。自己尝试php5.6安装了下,反正。。失败了。
先贴出来官网教程的步骤

步骤 1. 安装 PHP(这一步是如果你没有安装php7)

sudo su
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install php7.2 php7.2-dev php7.2-xml -y --allow-unauthenticated

步骤 2. 安装先决条件

Ubuntu 按照的说明安装的 ODBC 驱动程序Linux 和 macOS 安装页
进入上边页面,查看自己对应的系统,然后照着运行命令就可以了。
这里我是ubuntu 14.04

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#Ubuntu 14.04
curl https://packages.microsoft.com/config/ubuntu/14.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 16.04
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 17.10
curl https://packages.microsoft.com/config/ubuntu/17.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 18.04
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

步骤 3. 安装用于 Microsoft SQL Server PHP 驱动程序

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
exit
*系统要求看这里
https://docs.microsoft.com/zh-cn/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017

总共需要装两个东西 1.odbc driver 1. php 两个扩展 sqlsvr和pdo_sqlsvr
第一步是因为php的两个扩展现在只支持php7
最后把好不容易生成的两个 pdo_sqlsrv.so sqlsrv.so 加入php.ini扩展。

开始我是php5 折腾了半天,觉得不行,安了php7, 直接去pecl官网找包自己编译pdo_sqlsrv 和 sqlsrv, 然后odbc driver 也是下载的官网的deb包安装的 后来一直有问题 再后来一怒之下环境恢复,按着官网的教程重新装一遍好了。还有一定要先看系统要求。
我安的时候 unixodbc是2.3.1 这时候会出现unixodbc-dev用apt安装不上,因为版本依赖的问题,never mind,pecl直接去install扩展,如果出现少头文件,不要慌,找个unixodbc2.3.1的源码包,然后里面有缺少的库,复制过去就行了。
什么?不知道库在哪里?locate sql.h 。。

    原文作者:greymonster
    原文地址: https://www.jianshu.com/p/c7d71942ef0f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞