ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库

要在ubuntu的php上连接远程windows上的sqlserver数据库,

php版本7.0不行,需要升级。

 

1.安装php7.3

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install -y php7.3

看phpinfo里面,有没有pdo, 如果没有,

就安装 (下面的命令不一定正确)

apt-get install php7.3-gd 

apt-get install php7.3-xml

apt-get install php7.3-curl 

等 

 

2.  Ubuntu16.04中php如何切换版本

sudo update-alternatives --config php

停用 php7.0:   sudo a2dismod php7.0

选择 php7.3 :    sudo a2enmod php7.3

 

3.重启 apache

sudo service apache2 restart 

 

4.安装sqlserver驱动

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

sudo bash -c "curl -s https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list"

sudo apt-get update
如果遇到这样的错误。没有错误的可以跳过

 (这里是时间过期了)执行命令 date -s 12/14/2018 && date -s 20:19:00 && sudo hwclock --systohc 注意改成当前时间即可
 
sudo ACCEPT_EULA=Y apt-get -y install msodbcsql17 mssql-tools

sudo apt-get -y install unixodbc-dev

sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-config

sudo pecl install sqlsrv

sudo pecl install pdo_sqlsrv

(pecl command not found )
(如果pecl执行不成功先执行以下2条命令)
(sudo apt-get install php-pear php-dev)


(/etc/php/conf.d 代表的是你本机的php安装路径)
sudo bash -c "echo extension=sqlsrv.so > /etc/php/conf.d/sqlsrv.ini" sudo bash -c "echo extension=pdo_sqlsrv.so > /etc/php/conf.d/pdo_sqlsrv.ini" sudo service php-fpm restart

首先安装sqlsrv 

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第1张图片

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第2张图片

 

然后,同样的,安装pdo_sqlsrv

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第3张图片

 

这样sqlserver的驱动就装好了

在php.ini里面加上 

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第4张图片

重启apache,看phpinfo里面有sqlsrv了:

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第5张图片

 

但是,光有sqlsrv是不够的,还要有pdo_sqlsrv,而phpinfo里面并没有

到底是哪里的问题? 

 

我看到有个10-pdo.ini的文件,不知道是不是这里的问题

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第6张图片

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第7张图片

打开10-pdo.ini,这里面只有一个pdo.so,我加了一个pdo_sqlsrv.so:

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第8张图片

保存,service apache2 restart 

ok了,pdo_sqlsrv出来了:

测试打印thinkphp3.2的M()对象: 

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第9张图片

 

测试查询数据: 

ubuntu16.04 升级php7.0到php7.3 及连接远程sqlserver数据库_第10张图片

5.sqlserver的配置

远程sqlserver默认使用的是1433端口,服务器是不开放的,要另外开放一个端口,防火墙也要开放这个端口

https://blog.csdn.net/wuzuyu365/article/details/100597699

 

你可能感兴趣的:(mysql,php,sqlserver)