docker中为PHP7.1安装sqlsever扩展

1.进入docker容器

docker exec -it 容器名 /bin/bash

2.创建并初始化 /usr/src/php目录

docker-php-source extract

cd /tmp

3.下载扩展  下载扩展地址:https://pecl.php.net/package/pdo_sqlsrv

curl -L -o /tmp/pdo_sqlsrc.tgz  https://pecl.php.net/get/pdo_sqlsrv-5.9.0.tgz

curl -L -o /tmp/sqlsrc.tgz  https://pecl.php.net/get/sqlsrv-5.9.0.tgz

4.解压

tar zxvf pdo_sqlsrv-5.9.0.tgz

tar zxvf sqlsrv-5.9.0.tgz

5.移动到php扩展目录

mv pdo_sqlsrv-5.9.0  /usr/src/php/ext/pdo_sqlsrv

mv sqlsrv-5.9.0  /usr/src/php/ext/qlsrv

6.安装sudo

apt-get update

apt-get install sudo

7.使用sudo安装ODBC

sudo apt-get install unixodbc-dev

8.安装扩展

docker-php-ext-install pdo_sqlsrv

docker-php-ext-install sqlsrv

9.查看扩展是否安装上

php -m |grep sqlsrv


10.重启php容器,扩展已经安装完毕


Tip:下面是命令使用的示例,在解决问题时发现的一些好玩的。可以记录下来试验下。

1.docker-php-source extract | delete

说明:

此命令,实际上就是在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件而已。我们就把它当作一个从互联网中下载下来的PHP扩展源码的存放目录即可。事实上,所有PHP扩展源码扩展存放的路径: /usr/src/php/ext 里面。

参数说明:

* extract : 创建并初始化 /usr/src/php目录

* delete : 删除 /usr/src/php目录

案例:

root@803cbcf702a4:/usr/src# ls -l

#此时,并没有php目录

-rw-r--r-- 1 root root 12176404 Jun 28 03:23 php.tar.xz

-rw-r--r-- 1 root root      801 Jun 28 03:23 php.tar.xz.asc

root@803cbcf702a4:/usr/src# docker-php-source extract

root@803cbcf702a4:/usr/src# ls -l

 #此时,生产了php目录

drwxr-xr-x 14 root root    4096 Aug  9 09:01 php

-rw-r--r--  1 root root 12176404 Jun 28 03:23 php.tar.xz

-rw-r--r--  1 root root      801 Jun 28 03:23 php.tar.xz.asc

root@803cbcf702a4:/usr/src# docker-php-source delete

root@803cbcf702a4:/usr/src# ls -l

 #此时,将已创建 php 目录给删除了

-rw-r--r-- 1 root root 12176404 Jun 28 03:23 php.tar.xz

-rw-r--r-- 1 root root      801 Jun 28 03:23 php.tar.xz.asc


2.docker-php-ext-enable

这个命令,就是用来启动 PHP扩展 的。我们使用pecl安装PHP扩展的时候,默认是没有启动这个扩展的,如果想要使用这个扩展必须要在php.ini这个配置文件中去配置一下才能使用这个PHP扩展。而 docker-php-ext-enable 这个命令则是自动给我们来启动PHP扩展的,不需要你去php.ini这个配置文件中去配置。

案例

# 查看现有可以启动的扩展

root@517b9c67507a:/usr/local/etc/php# ls /usr/local/lib/php/extensions/no-debug-non-zts-20170718/

opcache.so  redis.so  sodium.so

root@517b9c67507a:/usr/local/etc/php#

你可能感兴趣的:(docker中为PHP7.1安装sqlsever扩展)