这篇文章主要讲述:
- docker-php-source
- docker-php-ext-install
- docker-php-ext-enable
- docker-php-ext-configure
如何通过这四个命令来安装php扩展的,这四个命令在容器中都做了哪些事情。
1.演示命令的作用
1 |
docker-php-source 此命令就是在php容器中创建源码存放目录用的。我们都知道linux一般的源码存放地点为,/usr/src,而此命令就是在/usr/src下创建一个php文件夹:/usr/src/php 里面放一些php的扩展源码,而php安装后的扩展实际存放路径为/usr/src/php/ext 下面 |
1 2 3 |
参数: extract : 创建并初始化 /usr/src/php目录 delete : 删除 /usr/src/php目录 |
1 2 3 4 |
#创建并初始化 docker-php-source extract #删除 docker-php-source delete |

docker-php-ext-install
这个命令,是用来安装并启动PHP扩展的。
命令格式:
docker-php-ext-install [源码包目录名]
注意点:
- 源码包需要放在/usr/src/php/ext 目录下 (这个目录就是上面那条命令创建的,ext目录下包含了大多数php扩展,方便我们之间通过命令安装)
- 默认情况,PHP容器没有 /usr/src/php这个目录,需要使用 docker-php-source extract来生成。
- docker-php-ext-install 安装的扩展在安装完成后,会自动调用docker-php-ext-enable来启动安装的扩展。
- 卸载扩展,直接删除/usr/local/etc/php/conf.d 对应的配置文件即可。
演示(安装pdo_mysql扩展和redis扩展)
1.安装pdo_mysql扩展
1 |
docker-php-ext-install pdo_mysql |

pdo_mysql 安装完成
2.安装redis扩展
1 |
docker-php-ext-install redis |

报错,为什么? 因为你的/usr/src/php/ext 目录下跟没有这个扩展,不信看pdo的那张图里,那你现在要干什么,当然是要去下载,然后解压到这个目录里,再执行上面的命令。(我已经下载好了 直接挪过去执行就行)

安装完成后重启下php,然后看


卸载扩展
卸载扩展直接删除 /usr/local/etc/php/conf.d 对应的配置文件即可


docker-php-ext-configure
docker-php-ext-configure 一般都是需要跟 docker-php-ext-install搭配使用的。它的作用就是,当你安装扩展的时候,需要自定义配置时,就可以使用它来帮你做到。 你可以把他理解为编译安装 的 ./configure –with 。。。。。等等参数,一般Dockerfile里会用到
例:
1 2 3 4 5 6 7 8 |
FROM php:7.2-fpm RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-install -j$(nproc) iconv \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd |
- 本文固定链接: https://www.yoyoask.com/?p=122
- 转载请注明: shooter 于 SHOOTER 发表