【问题标题】:docker php7.2-fpm can't install imap moduledocker php7.2-fpm 无法安装 imap 模块
【发布时间】:2021-01-25 17:13:04
【问题描述】:

我在尝试让 imap 与我的 docker-compose 一起工作时遇到问题。

这是我的 php dockerfile 的样子。

FROM php:7.2-fpm

RUN apt-get update && \
  apt-get install -y \
    curl \
    libmcrypt-dev \
    unzip \
    git 

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install- 
dir=/usr/local/bin --filename=composer
RUN composer --version

# Set timezone to UTC
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/UTC /etc/localtime
RUN "date"

RUN apt-get -y install libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
    && rm -r /var/lib/apt/lists/*

RUN /usr/local/bin/docker-php-ext-install pdo pdo_mysql

ADD ./scripts/entry.sh /root/init.sh

WORKDIR /var/www/insight

但我不断收到错误

Call to undefined function imap_open()

我一直在尝试很多不同的方法来让 imap 工作,但似乎没有什么对我有用。我需要继续使用 php7.2,所以降级到 php5 对我来说不是一个选择。

我的理想结果是保留当前的 ​​php 版本的 fpm 并找到一个很好的解决方案来让 imap 与当前的 dockerfile 一起工作。

添加

Docker-php-ext-install imap 

dockerfile 内部似乎不起作用并导致以下错误:

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

【问题讨论】:

  • 尝试将 imap-dev 添加到您的apt-get install ...(来自github.com/docker-library/php/issues/244
  • @NigelRen 结果:E:无法定位包 imap-dev
  • 作为替代方案,请尝试 libc-client-devel(来自 stackoverflow.com/questions/13436356/…
  • @NigelRen 也无法找到该软件包,因为我的图像基于 ubuntu 我尝试了软件包 libc-client2007e-dev,为此我还尝试使用 libc-client-dev 和 libc -client-devel 但都导致无法找到包。
  • libc-client2007e-dev 存在于 Ubuntu 中,尝试登录您的容器,看看您是否可以手动执行此步骤。

标签: php docker imap


【解决方案1】:

要在 Docker 中将 imap 模块与 PHP 一起使用,您必须像这样配置扩展

docker-php-ext-configure imap --with-kerberos --with-imap-ssl

您可以在我的project 之一中看到 Dockerfile 的示例

【讨论】:

  • 我也刚刚发现了这一点,但是由于它是相同的解决方案,并且我确认您的解决方案也有效,所以我会去接受它,干杯!
  • 我必须运行这个apt-get install -y libc-client-dev libkrb5-dev && rm -r /var/lib/apt/lists/* && docker-php-ext-configure imap --with-kerberos --with-imap-ssl && docker-php-ext-install imap
【解决方案2】:

2020 年 Linux Alpine 上 PHP 7.4 和 PHP 8 的实际情况

RUN apk add imap-dev krb5-dev
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
        && docker-php-ext-install imap \
        && docker-php-ext-enable imap

【讨论】:

    【解决方案3】:

    通过使用解决了它

    RUN apt update && apt install -y libc-client-dev libkrb5-dev && rm -r /var/lib/apt/
    
    RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && docker-php-ext-install imap
    

    发现于https://stackoverflow.com/a/52314180/2311074

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-25
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      • 2023-01-14
      相关资源
      最近更新 更多