我使用官方的php docker映像作为应用程序容器的基础,因此Dockerfile的启动方式如下:
FROM php:5.6-fpm-jessie
在文件的后面,我希望有这样的内容:
RUN apt-get update \
&& apt-get install -y libssh2-1-dev libssh2-1 \
&& docker-php-ext-install ssh2
但这告诉我:
/usr/src/php/ext/ssh2 does not exist
因为这是一个基于debian(yessie)的镜像,所以只有旧的php5包可用,php7是通过php:fpm dockerfile中一些棘手的脚本安装的,它似乎所有的扩展都是在使用的php可执行文件中编译的。
在这种情况下如何安装更多扩展?
9条答案
按热度按时间qlzsbp2j1#
如果您使用的是PHP〉=8.0图像:
ejk8hzay2#
对于Alpine和php〉7
vzgqcmou3#
最后,这是成功的。
ws51t4hk4#
看起来pecl选项在PHP 6之后的版本中是不可用的,为了安装它,我不得不从源代码开始构建。从
php:7.1.27-cli
开始,我可以用以下命令来安装它-php:7.1.27-cli
映像基于debian stretch:zyfwsgd65#
我在PHP 7.2的CLI映像上使用的解决方案是:
构建Docker映像并确认已安装SSH2扩展:
uplii1fm6#
最简单的解决方案是使用
install-php-extensions
,它是一个脚本,可以在任何Docker PHP映像上自动安装所需的系统库。install-php-extensions
还可以安装大量其他PHP扩展,而不仅仅是ssh2
:更多详情请访问https://github.com/mlocati/docker-php-extension-installerds97pgxw7#
如果有人想在php 7.4中寻找这个更新的版本,你需要以下文件:
安装依赖项
here发布的链接最高只能运行php7.2。
yzxexxkh8#
我有一些错误的其他解决方案在我的运行容器上richarvey/nginx-php-fpm图像与两个命令一起工作.
0wi1tuuw9#
PHP 7.4的工作解决方案: