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
):
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:
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):
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):
Esto iniciará la descarga de un archivo zip " php_imagick-<version>-<thread-safe-or-not>-<php-compiled-version>-<architecture>.zip
". De aquí .zip
necesitará extraer solo el php_imagick.dll
archivo. Copie el php_imagick.dll
archivo y péguelo en la php/ext
carpeta dentro de la ruta de instalación de xampp (normalmente C:\xampp\php\ext
):
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:
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 bin
carpeta y copie todos los archivos .dll (excepto ImageMagickObject.dll
) que serían aproximadamente 146 archivos (con prefijos CORE_*
y IM_MOD_*
) y luego pegue los archivos copiados en la apache/bin
carpeta 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:
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 ❤️!
Conviertete en un programador más sociable