【发布时间】:2019-03-28 16:32:23
【问题描述】:
我正在使用 Arch Linux 操作系统。
我有一个运行 php 项目的容器,我需要启用 gmp 和 curl 扩展。
我的容器基于 Alpine 映像,我可以使用 docker exec {container-name} apk add php-gmp php-curl 安装扩展。
然后,如果我运行 docker exec {container-name} php -m 来显示我的扩展,控制台将打印 gmp 和 curl。太好了,这一切都很好,我还在同一个容器内运行的 php.ini 文件中启用了扩展。
但如果我去控制器并返回 extension_loaded('gmp') 它会打印错误!
我错过了什么?
【问题讨论】:
-
你在用什么? mod_php? PHP-FPM? CLI Web 服务器?您可能需要在相关容器上重新启动 webserver/PHP 进程。
-
在这种情况下,是的,您可能需要重新启动服务,但最好在 Dockerfile 中添加扩展并重建映像,这样每次都会出现。
-
感谢您的回复,我做了一些研究,发现我有另一个运行 nginx 的容器,所以正在使用 php-fpm。我现在尝试使用
docker build重建 nginx 容器,这重建了 nginx 容器......但没有区别。然后我发现在为 php-fpm 安装一个包之后,你必须执行sudo /etc/init.d/php-fpm restart,我现在已经从两个容器中尝试过,但无济于事。 nginx 容器有 /etc/init.d 但没有 php-fpm 可执行文件,并且 php 容器没有 /etc/init.d 目录。我觉得我离成功如此之近,我能闻到它的味道。 -
Dockerfiles 显然在导入带有
RUN apk add的依赖包时存在问题,例如。我想我让这部分工作,然后继续解决 Dockerfile 问题。
标签: php docker curl gmp alpine