[php-fpm] Docker에서 GD JPEG Support 활성화

3411 단어 PHPjpegLaravelDocker

일어난 일


Docker에 구축된 Laavel 응용 프로그램 중 4Intervention/image이미지 업로드 기능을 수행할 때 사용Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg()Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg()이런 실수를 당했습니다.
이 오류는 pg와giff 이미지 업그레이드 중 발생하지 않았습니다
JPEG 이미지를 프로모션할 때만 발생합니다.
오류 문구에서도 보듯이 PHP 확장 모듈 GD에서는 JPEG의 지원이 유효하지 않아 요약했다.

컨디션


・PHP:7.1
・Laavel:5.6
・Docker for mac:1.03.1-ce,build9ee9f40

해결책


1. phpinfo 확인

pg와gif를 지원하지만 jpeg 지원이 없습니다.
Intervention/image는 PHP의 이미지 변환 모듈의 GD에 의존하며 GD가 JPEG를 지원하지 않는 것이 가장 큰 이유입니다.
2. Docker file 편집
편집 전
RUN apt-get update \
  && apt-get install -y \
    gcc \
    make \
    libpng-dev \
    git \
    unzip \
    vim \
    libmcrypt-dev \
    mysql-client \
    curl \
    gnupg \
    && docker-php-ext-install mcrypt pdo_mysql mysqli mbstring gd zip \
아래와 같이 이 항목을 편집합니다.
RUN apt-get update \
  && apt-get install -y \
    gcc \
    make \
    libpng-dev \
    git \
    unzip \
    vim \
    libmcrypt-dev \
    mysql-client \
    curl \
    gnupg \
    libjpeg-dev \
    libfreetype6-dev \
    && docker-php-ext-install mcrypt pdo_mysql mysqli mbstring zip \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd
나중에 다시 보내주세요.
3. phpinfo 확인

JPEG 지원은 enable입니다.
이후 JPEG 업로드도 완료됐다.

총결산


저는 PHP 문외한이기 때문에 확장 모듈과 PHP 자체 구성에 대해 잘 모르기 때문에 앞으로 조금 더 주의를 기울여야 할 계기가 됐습니다.
참조:
https://gtrt7.com/blog/wp/docker-img-recov

좋은 웹페이지 즐겨찾기