要在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