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 

 

然後,同樣的,安裝pdo_sqlsrv

 

這樣sqlserver的驅動就裝好了

在php.ini裏面加上 

重啓apache,看phpinfo裏面有sqlsrv了:

 

但是,光有sqlsrv是不夠的,還要有pdo_sqlsrv,而phpinfo裏面並沒有

到底是哪裏的問題? 

 

我看到有個10-pdo.ini的文件,不知道是不是這裏的問題

打開10-pdo.ini,這裏面只有一個pdo.so,我加了一個pdo_sqlsrv.so:

保存,service apache2 restart 

ok了,pdo_sqlsrv出來了:

測試打印thinkphp3.2的M()對象: 

 

測試查詢數據: 

5.sqlserver的配置

遠程sqlserver默認使用的是1433端口,服務器是不開放的,要另外開放一個端口,防火牆也要開放這個端口

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章