我有一个带有Phalcon3和php 7的Docker容器。我试图安装php扩展程序Mcrypt没有运气。
如果我对容器执行ssh,并执行:
apt-get update
apt-get install php7.0-mcrypt
我得到以下内容:
E: Unable to locate package php7.0-mcrypt
E: Couldn't find any package by regex 'php7.0-mcrypt'
有没有办法安装它?
答案 0 :(得分:9)
让我们看一下php docker image 部分PHP核心扩展的官方手册
例如,如果您想要一个带有iconv,mcrypt的PHP-FPM图像 和gd扩展,你可以继承你喜欢的基本图像,和 编写自己的Dockerfile,如下所示:
FROM php:7.0-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng-dev \
&& docker-php-ext-install -j$(nproc) iconv mcrypt \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd
Rember,您必须手动为扩展程序安装依赖项。如果 一个扩展需要自定义配置参数,你可以使用 像这个例子一样的docker-php-ext-configure脚本。没有必要 在这种情况下手动运行docker-php-source,因为这是由处理 配置和安装脚本。
答案 1 :(得分:7)
我将代码添加到了Dockerfile中,但是出现了这个错误
error: /usr/src/php/ext/mcrypt does not exist
答案 2 :(得分:5)
摘自PHP手册:
此扩展已移至»PECL存储库,并且从PHP 7.2.0开始不再与PHP捆绑在一起。
因此,在您的Dockerfile中,您必须:
RUN apt-get install libmcrypt-dev
RUN pecl install mcrypt-1.0.1 && docker-php-ext-enable mcrypt