J'essaie d'ajouter quelques fonctionnalités à PHP Gd installation. J'utilise Docker PHP "Official" release comme base (php: 7.1.15- fpm-jessie).
Mon environnement de production actuel utilise CentOS, dont le module Gd est livré avec le support FreeType, JPEG et PNG, comme vous pouvez le voir dans la sortie phpinfo:
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
Mais cette image Docker est livrée sans support FreeType et JPEG et avec une version beaucoup plus ancienne de Gd (voir ci-dessous 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
Dois-je recompiler PHP ou juste l'extension? L'image utilise Debian Jessie.
ÉDITION (SOLUTION):
Après avoir recompilé, j'ai trouvé la meilleure solution dans ce post:
J'ai donc simplement ajouté:
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
Après cela, mon phpinfo commence à montrer:
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
Ajoutez ceci à votre 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
Ça marche pour moi.