Aprende a configurar la extensión Imagick en XAMPP para Windows.


Imagick es una extensión nativa de PHP para crear y modificar imágenes usando la API ImageMagick. El nombre causa cierta confusión ya que la gente piensa que ImageMagick e Imagick son lo mismo, pero no lo son. Puede usar ImageMagick sin Imagick, pero necesita tanto Imagick como ImageMagick instalados para ejecutarlo dentro de su código PHP.

Puede verificar con el código PHP si la extensión Imagick está instalada o no usando:

<?php 

if (!extension_loaded('imagick')){
    echo 'imagick not installed';
}

O simplemente los errores en su código que implementa Imagick le dirán ...:

Se intentó cargar la clase "Imagick" desde el espacio de nombres global. ¿Olvidó una declaración de "uso"?

Clase 'Imagick' no encontrada

En XAMPP para Windows, Imagick no está integrado, por lo tanto, depende de usted su instalación e implementación. Si ya ha buscado anteriormente cómo instalar Imagick en XAMPP para que funcione, y simplemente no puede hacerlo, probablemente esté fuera de los límites y quiera suicidarse.

Afortunadamente, en este artículo encontrarás la instalación definitiva de Imagick para XAMPP en Windows.

Notas previas a la instalación

Debemos mencionar que la instalación de Imagick no es fácil (puede ser un poco confuso) y puede obtener errores durante la instalación si no sigue cuidadosamente cada paso a paso. Además, necesita conocer la siguiente información sobre su distribución PHP:

Nota: según la versión de XAMPP que utilice, estos valores pueden variar.

Nombre Valor por defecto
Arquitectura x86 (XAMPP predeterminado)
Seguridad del hilo 

Habilitado

TS: significa seguridad de rosca habilitada

NTS: significa seguridad de rosca deshabilitada

Compilador

MSVC11 (Visual C ++ 2012)

Algunas versiones de Imagick están compiladas con versiones diferentes, por ejemplo, VC9, VC11 (en este caso), VC14

Puede obtener esos valores con la phpinfo()función de PHP ejecutando esta función dentro de un script vacío:

<?php

phpinfo();

Una vez que conozca los valores, estos le indicarán con archivos con qué arquitectura necesita descargar de todos los siguientes pasos.

Nota: no olvide tampoco ejecutar todas las configuraciones con derechos de administrador.

1. Descargue e instale ImageMagick para Windows

Navegue en su navegador al área de Descargas del sitio web de Imagick y desplácese hasta la zona de Windows. ImageMagick se ejecuta en casi todas las versiones para Windows (desde Windows Server 2009, XP a Windows 10), ahora de esta lista es importante descargar la última versión disponible con  X86 arquitectura y versión DLL porque esa es la arquitectura que usa XAMPP (normalmente, si no se refiere al PHPINFO y descargue la versión correcta, por ejemplo ImageMagick-<version>-Q16-x86-dll.exe):

Download Imagick Setup Windows

Descarga el ejecutable y espera. Hasta el momento, no necesitamos configurar nada para PHP, simplemente proceda con la instalación de Imagick para Windows y no olvide marcar la opción para agregar Imagick a la RUTA:

Add Imagick to the PATH in Windows

Una vez que finaliza la configuración, puede probar Imagick en un nuevo símbolo del sistema ejecutándose (que debería imprimir la versión en la consola):

magick -version

2. Descarga Imagick para PHP

Ahora navegue hasta el paquete Imagick en el sitio web de PECL aquí y seleccione la versión DLL de la última versión disponible (en caso de que haya descargado una versión anterior de ImageMagick, descargue una versión que acepte su versión):

Imagick PECL package setup

Luego se cargará una nueva ventana, en esta página desplácese a Lista de DLL y haga clic en la versión correcta para su versión de PHP con la arquitectura correcta (de XAMPP no su sistema operativo) y Thread Safe en caso de que esté habilitado en su distribución (Consulte phpinfo para saber si su distribución php usa Thread Safe o no):

PHP Imagick DLL version

Esto iniciará la descarga de un archivo zip " php_imagick-<version>-<thread-safe-or-not>-<php-compiled-version>-<architecture>.zip". De aquí .zipnecesitará extraer solo el php_imagick.dllarchivo. Copie el php_imagick.dllarchivo y péguelo en la php/extcarpeta dentro de la ruta de instalación de xampp (normalmente C:\xampp\php\ext):

Copy dll in ext directory of php

Luego, proceda a habilitar la extensión en su archivo php.ini agregando la siguiente línea:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; Add the following line where the other extensions are loaded
extension=php_imagick.dll

Ahora la extensión está cargada, pero Imagick aún no funcionará, ya que ni siquiera se reconocerá como una extensión si verificas el archivo phpinfo porque necesitamos cargar todos los métodos y los binarios que puedes recuperar en el siguiente paso.

3. Descargue los binarios de Imagick necesarios

En este punto puede que te estés preguntando, ¿de verdad amigo? 3 descargas diferentes? El problema con Imagick es que hay muchas compilaciones de diferentes fuentes y si no descarga e instala las correctas, no funcionará o se cargará, pero si marca la extensión Imagick (más tarde, todavía no) en phpinfo verás:

ImageMagick número de formatos compatibles: 0

Es por eso que debe seguir los pasos mencionados, de lo contrario, no hará que Imagick funcione. Para evitar cualquier error de implementación, los binarios deben provenir de la misma fuente, en este caso windows.php.net. Para descargar los binarios requeridos, navegue a PECL Deps aquí y busque Imagick en la lista:

ImageMagick binaries Windows XAMPP

Descargue la versión que coincida con la arquitectura de xampp y verifique la versión del compilador. En este caso, descargamos la tercera opción con un tamaño aproximado de 30MB ( ImageMagick-6.9.3-7-vc11-x86.zip). Ahora extrae todos los archivos de este zip en una carpeta donde quieras, en este caso vamos a extraer el contenido del zip en una carpeta del escritorio. 

Una vez que se extrae el contenido del archivo, abra la bincarpeta y copie todos los archivos .dll (excepto ImageMagickObject.dll) que serían aproximadamente 146 archivos (con prefijos CORE_*IM_MOD_*) y luego pegue los archivos copiados en la apache/bincarpeta de xampp (normalmente C:\xampp\apache\bin).

Ahora inicie el servicio apache (o reinícielo en caso de que ya se esté ejecutando) y vuelva a phpinfo. Ahora debería ver imagick cargado como una extensión:

PHPINFO Imagick Extension Loaded succesfully

Y finalmente, después de horas de sufrimiento, puede usar Imagick con PHP para XAMPP en Windows.

En caso de error de la consola

Si después de la implementación sigue recibiendo el siguiente mensaje de error cada vez que usa PHP (al menos en la consola):

Advertencia de PHP: Inicio de PHP: No se puede cargar la biblioteca dinámica 'C: \ xampp \ php \ ext \ php_imagick.dll' - No se pudo encontrar el módulo especificado.

Deberá agregar el directorio bin de Apache ( C:\xampp\apache\bin) a la variable de entorno PATH de Windows y se resolverá el problema.

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores