PHP Gdインストールにいくつかの機能を追加しようとしています。DockerPHP "公式"リリースをベースとして使用しています(php:7.1.15- fpm-jessie)。
現在の本番環境ではCentOSを使用しています。Gdモジュールには、phpinfoの出力からわかるように、FreeType、JPEG、PNGのサポートが付属しています。
Gd Support => enabled
Gd headers Version => 2.2.5
Gd library Version => 2.2.5
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.4.11
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => 6b
PNG Support => enabled
libPNG Version => 1.5.13
WBMP Support => enabled
XPM Support => enabled
libXpm Version => 30411
XBM Support => enabled
WebP Support => enabled
Directive => Local Value => Master Value
Gd.jpeg_ignore_warning => 1 => 1
しかし、このDockerイメージには、FreeTypeとJPEGのサポートがなく、はるかに古いバージョンのGdが付属しています(以下のphpinfoを参照)。
Gd Support => enabled
Gd Version => bundled (2.1.0 compatible)
GIF Read Support => enabled
GIF Create Support => enabled
PNG Support => enabled
libPNG Version => 1.2.50
WBMP Support => enabled
XBM Support => enabled
Directive => Local Value => Master Value
Gd.jpeg_ignore_warning => 1 => 1
PHPまたは拡張機能のみを再コンパイルする必要がありますか?イメージはDebian Jessieを使用しています。
エディション(ソリューション):
再コンパイルした後、私はこの投稿で最良の解決策を見つけました:
解決!Docker + PHP7 + Gdの問題により、「未定義の関数imagecreatefromjpeg()が呼び出されます」
だから私は単に追加しました:
RUN apt-get update && apt-get install libgd3 libgd-dev && rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-configure Gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install -j$(nproc) Gd
その後、phpinfoが表示を開始します。
Gd Support => enabled
Gd Version => bundled (2.1.0 compatible)
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.5.2
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => 6b
PNG Support => enabled
libPNG Version => 1.2.50
これをDockerfileに追加します。
RUN apt-get update && apt-get install -y libpng-dev
RUN apt-get install -y \
libwebp-dev \
libjpeg62-turbo-dev \
libpng-dev libxpm-dev \
libfreetype6-dev
RUN docker-php-ext-configure Gd \
--with-Gd \
--with-webp-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-xpm-dir \
--with-freetype-dir \
--enable-Gd-native-ttf
RUN docker-php-ext-install Gd
わたしにはできる。