背景
很久之前,有一个ctf比赛,大家都在俱乐部里使劲。当时我做到了一道php的题目,里面需要用到php插件中的压缩,但是当时我不知道如何开启插件,当时非常苦恼,想着一定要解决一下这个问题,不然以后再遇到这个问题就麻烦了。
今天在做sql盲注的时候,想现在本地实践一番,写出个脚本再开题目。结果本地上来就给我一个mysqli找不到
。我便花了很长时间去寻找开启插件的方法。在php.ini
里试了一下,但是都没有成果,最终我开了一眼dockerhub的php镜像说明,豁然开朗,原来镜像开始拓展如此简单。
解决办法
官方原话。
官方提供了几个命令,docker-php-ext-configure
、docker-php-ext-install
、docker-php-ext-enalbe
来轻松地安装拓展。
但是官方给地例子都是需要在Dockerfile里先运行然后生成镜像的,这貌似有点麻烦。
然后我在github上发现了这位老哥的留言,它说这些命令其实完全可以在容器内部使用。
其实我应该想到的,毕竟Dockerfile中的RUN实际上就是执行内部的命令然后生成一个新的镜像。
这样安装mysqli拓展就显得无比简单了,只需在容器内部执行
docker-php-ext-install mysqli
docker-php-ext-enable mysqli #实际测试这句话可以不写,会自动应用
apachectl restart
战术总结
这次算是解决了一个重大历史遗留问题。
以后php的时候就可以更加游刃有余了。