Instalar ImageMagick 7 para PHP 8.0

Si utilizas WordPress sabrás que es mucho más recomendable usar ImageMagick que GD para la gestión de ficheros media, sobre todo por la cantidad de cosas que se pueden hacer.

Ahora que ya tenemos ImageMagick 7 y la extensión para imagick de PHP (mediante PECL), podemos utilizar toda la potencia para WordPress 5.8 que da soporte a algunos formatos nuevos.

Este tutorial ha sido creado en un VPS de Clouding.io. Puedes crear tu propio VPS desde 3€/mes.

Además, tienes la posibilidad de crear tu VPS con la imagen de WordPress en un clic.

COLABORACIÓN

Comenzamos con la instalación de las herramientas necesarias para instalar y compilar los elementos que nos harán falta.

apt -y install software-properties-common apt-transport-https build-essential pkg-config

Descargamos los paquetes de ImageMagick 7. Para ello usaremos IMEI – ImageMagick Easy Install que compila la última versión de ImageMagick y añade soporte a HEIF, HEIX, AVIF y JPEG XL. Por cierto, depende de los recursos de la máquina, puede tardar entre 15 y 30 minutos.

cd
git clone https://github.com/SoftCreatR/imei
cd imei
./imei.sh

Y en este momento tendremos ya instalado ImageMagick 7.

magick -version
Version: ImageMagick 7.1.0-1 Q32 x86_64 2021-06-12 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5)
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg jxl lcms lqr ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zip zlib

Instalamos PHP 8.0.

cd
add-apt-repository -y -s ppa:ondrej/php
apt -y install php8.0 php8.0-fpm php8.0-common php8.0-dev php8.0-cli php8.0-bcmath php8.0-curl php8.0-gd php8.0-intl php8.0-imap php8.0-mbstring php8.0-mysql php8.0-opcache php8.0-readline php8.0-soap php8.0-xml php8.0-zip

Vamos a instalar la extensión 3.5.0 que es compatible con PHP 8 e ImageMagick 7, así que descargamos los paquetes de imagick 3.5.0.

cd
pecl channel-update pecl.php.net
pecl install imagick-beta
echo "extension=imagick.so" >> /etc/php/8.0/mods-available/imagick.ini
ln -s /etc/php/8.0/mods-available/imagick.ini /etc/php/8.0/cli/conf.d/50-imagick.ini

Si usas PHP-FPM, tendrás que reiniciar el servicio.

ln -s /etc/php/8.0/mods-available/imagick.ini /etc/php/8.0/fpm/conf.d/50-imagick.ini
systemctl restart php8.0-fpm.service
systemctl status php8.0-fpm.service

Y si revisamos en la configuración de PHP, encontraremos lo siguiente:

imagick

imagick module => enabled
imagick module version => 3.5.0
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 7.1.0-1 Q32 x86_64 2021-06-12 https://imagemagick.org
Imagick using ImageMagick library version => ImageMagick 7.1.0-1 Q32 x86_64 2021-06-12 https://imagemagick.org
ImageMagick copyright => (C) 1999-2021 ImageMagick Studio LLC
ImageMagick release date => 2021-06-12
ImageMagick number of supported formats:  => 260
ImageMagick supported formats => 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, ASHLAR, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUBE, CUR, CUT, DATA, DCM, DCR, DCRAW, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FARBFELD, FAX, FF, FILE, FITS, FL32, FLV, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, HALD, HDR, HEIC, HEIF, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, JXL, K25, KDC, KERNEL, LABEL, M2V, M4V, MAC, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORA, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PHM, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGB565, RGBA, RGBO, RGF, RLA, RLE, RMF, RSVG, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TM2, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YAML, YCbCr, YCbCrA, YUV

Directive => Local Value => Master Value
imagick.allow_zero_dimension_images => 0 => 0
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
imagick.set_single_thread => 1 => 1
imagick.shutdown_sleep_count => 10 => 10
imagick.skip_version_check => 0 => 0

Y, dentro de tu WordPress, ya podrás disponer de todo lo necesario para su uso. Puedes validarlo yendo a la sección de Salud del Sitio → Información → Gestión de medios.


Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.

2 comentarios en «Instalar ImageMagick 7 para PHP 8.0»

Los comentarios están cerrados.