今天在dnmp环境里,安装了php,然后在安装自己开发的php扩展时,死活安不上。一开始是使用传统方式安装。
Docker 中的PHP容器安装扩展的方式主要有以下2种:
(1).通过pecl方式安装。
(2).通过php 容器中自带的几个特殊命令来安装,这些特殊命令可以在Dockerfile中的RUN命令中进行使用。
我使用的是如下方式安装:
将扩展传到docker环境里,可以在容器环境里使用命令php -i|grep "extension_dir",来查看扩展目录位置。上传完成后我在php.ini文件里配置启用扩展(extension=myextension.so)。然后重启php容器。再用php -m查看,发现没装上。在info.php页面看也没有。然后怀疑是自己某一步操作错误了,就又重新安装了几遍,结果还是不行。最终查看docker容器安装php扩展的方式,才找到解决方法,进入php容器,用docker-php-ext-enable myextension来启用,结果瞬间成功了。
此处有这样几个命令docker-php-source,docker-php-ext-install,docker-php-ext-enable,docker-php-ext-configure,详细解释下。
docker-php-source
此命令,实际上就是在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件而已。我们就把它当作一个从互联网中下载下来的PHP扩展源码的存放目录即可。事实上,所有PHP扩展源码扩展存放的路径: /usr/src/php/ext 里面。
docker-php-ext-enable
这个命令,就是用来启动 PHP扩展 的。
docker-php-ext-install
这个命令,是用来安装并启动PHP扩展的。
docker-php-ext-configure
docker-php-ext-configure 一般都是需要跟 docker-php-ext-install搭配使用的。它的作用就是,当你安装扩展的时候,需要自定义配置时,就可以使用它来帮你做到。
参考文章https://www.cnblogs.com/yinguohai/p/11329273.html