Docker PHP如何启用MySQL扩展

近段时间手头有个PHP的源码,对它挺感兴趣所以就用Docker运行了PHP8的容器,代码运行起来之后发现数据库无法访问,根据报错信息看出是MysqL的扩展没启用,百度溜达了好久也没找到一个帖子讲明白如何启用扩展,自己摸索了半天终于搞明白,在这里分享给一下

安装扩展的教程在文档中有记录,根据文档描述镜像中已经内置了许多常用的扩展,只是没有安装,且文档中写出了操作扩展的命令

image

我下载的镜像是PHP8版本:docker pull PHP:8.0-fpm,容器起名为PHP8

进入到容器中,执行PHP -m命令,可以看到打印出MysqLnd,查看该扩展所在位置

[root@localhost webs]# docker exec -it PHP8 /bin/bash
root@8e288e13b95c:/var/www/html# PHP -m
root@8e288e13b95c:/var/www/html# find / -name MysqLnd

执行install命令安装MysqLnd,然后再次查看该扩展所在位置,会发现多了一个目录

root@8e288e13b95c:/var/www/html# docker-PHP-ext-install MysqLnd
root@8e288e13b95c:/var/www/html# find / -name MysqLnd

移动到多出来的目录中,查看与MysqL相关的文件,会看到MysqLi,这个才是真正要安装的扩展,执行安装

root@8e288e13b95c:/var/www/html# cd /usr/src/PHP/ext
root@8e288e13b95c:/usr/src/PHP/ext# ls -l | grep MysqL
root@8e288e13b95c:/usr/src/PHP/ext# docker-PHP-ext-install ./MysqLi

至此安装完成,退出容器重启后重启MysqL扩展就可以使用了

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...