Я пытаюсь добавить некоторые функции в установку PHP GD. Я использую официальный выпуск Docker PHP в качестве основы (php: 7.1.15-fpm-jessie).
Моя текущая производственная среда использует CentOS, модуль GD которого поставляется с поддержкой FreeType, JPEG и PNG, как вы можете видеть в выводе 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
Но этот образ 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.
ИЗДАНИЕ (РЕШЕНИЕ):
После перекомпиляции я нашел лучшее решение в этом посте:
Поэтому я просто добавил:
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