extensiones - Instale Imagick para PHP y Apache en Windows
instalar extensiones php windows (6)
-
Descargue la versión de extensión adecuada de
http://windows.php.net/downloads/pecl/releases/imagick/
Elegí 3.1.2, que es la última versión no beta en este momento
- Descomprima y copie php_imagick.dll a la carpeta ext de PHP
- agregue la extensión [PHP_IMAGICK] = php_imagick.dll a php.ini
- Descargue la versión recomendada de Imagick e instálela desde: http://imagemagick.org/script/binary-releases.php#windows (Elegí tener encabezados C y también objetos COM durante la instalación)
- Reiniciar apache
- Verifique phpinfo () para la sección Imagick ... ¡ahí está!
Pasos que he tomado hasta ahora:
- He instalado Imagick en mi máquina Win7, y está instalado y funcionando correctamente a través de la línea de comandos.
- Extraje el contenido de php_imagick-3.1.2-5.6-ts-vc11-x86.zip disponible here en mi directorio / PHP / ext.
- Habilitado el imagick.dll en php.ini
- Reiniciado ...
- No hay errores al iniciar Apache.
-
Todavía recibo el
Fatal error: Class ''Imagick'' not found
error deFatal error: Class ''Imagick'' not found
cuando intento ejecutar un script que usa Imagick.
Versiones actuales:
- Windows 7 x64
- Apache 2.4.10 x86 VC11 (de Apachelounge)
- PHP 5.6.3 x86 VC11 TS (de windows.php.net)
- ImageMagick 6.9.0-0 Q16 x86 (de imagemagick.org)
- Imagick DLL php_imagick-3.1.2-5.6-ts-vc11-x86.zip (desde here )
Estaba ejecutando una versión anterior de PHP y tenía Imagick funcionando bien con eso, luego actualicé PHP (y las DLL de Imagick junto con él) y ahora parece que no puedo hacer que funcione.
Mirando
phpinfo( )
, no veo Imagick en la lista, por lo que no parece estar cargando el módulo en absoluto.
Lo cual es extraño, porque no obtengo ningún error al iniciar Apache.
He intentado casi todos los escritos y tutoriales para instalar Imagick para PHP en Windows, pero parece que todos están escritos para versiones anteriores de PHP.
¿Alguien puede ayudarme a instalar y ejecutar esto? Parece que solo falta un paso simple que parece que no puedo entender. Si necesita más información, por favor pregunte. Te conseguiré todo lo que pueda para ayudar.
1, Primero descargue la versión correcta del paquete php_imagick dependiendo de su situación, uso php_imagick-3.4.3-7.1-ts-vc14-x64.zip de:
https://windows.php.net/downloads/pecl/snaps/imagick/3.4.3/php_imagick-3.4.3-7.1-ts-vc14-x64.zip
2, luego descomprima php_imagick-3.4.3-7.1-ts-vc14-x64.zip en la carpeta C: / php_imagick
3, luego agregue la extensión = C: /php_imagick/php_imagick.dll en php.ini
4, ahora agregue * .dll (excepto php_imagick.dll) a su archivo apache vhost, por ejemplo:
# enable imagick start ===========
SetEnv MAGICK_HOME "C:/php_imagick"
LoadFile "C:/php_imagick/CORE_RL_bzlib_.dll"
LoadFile "C:/php_imagick/CORE_RL_cairo_.dll"
LoadFile "C:/php_imagick/CORE_RL_exr_.dll"
LoadFile "C:/php_imagick/CORE_RL_glib_.dll"
LoadFile "C:/php_imagick/CORE_RL_jp2_.dll"
LoadFile "C:/php_imagick/CORE_RL_jpeg_.dll"
LoadFile "C:/php_imagick/CORE_RL_lcms_.dll"
LoadFile "C:/php_imagick/CORE_RL_librsvg_.dll"
LoadFile "C:/php_imagick/CORE_RL_libxml_.dll"
LoadFile "C:/php_imagick/CORE_RL_lqr_.dll"
LoadFile "C:/php_imagick/CORE_RL_magick_.dll"
LoadFile "C:/php_imagick/CORE_RL_Magick++_.dll"
LoadFile "C:/php_imagick/CORE_RL_openjpeg_.dll"
LoadFile "C:/php_imagick/CORE_RL_pango_.dll"
LoadFile "C:/php_imagick/CORE_RL_png_.dll"
LoadFile "C:/php_imagick/CORE_RL_tiff_.dll"
LoadFile "C:/php_imagick/CORE_RL_ttf_.dll"
LoadFile "C:/php_imagick/CORE_RL_wand_.dll"
LoadFile "C:/php_imagick/CORE_RL_webp_.dll"
LoadFile "C:/php_imagick/CORE_RL_zlib_.dll"
LoadFile "C:/php_imagick/FILTER_analyze_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_aai_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_art_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_avs_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_bgr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_bmp_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_braille_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cals_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_caption_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cin_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cip_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_clip_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_clipboard_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cmyk_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cut_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dcm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dds_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_debug_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dib_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_djvu_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dng_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dot_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dps_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dpx_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_emf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ept_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_exr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_fax_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_fd_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_fits_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_fpx_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_gif_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_gradient_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_gray_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_hald_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_hdr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_histogram_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_hrz_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_html_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_icon_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_info_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_inline_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ipl_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_jbig_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_jnx_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_jp2_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_jpeg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_json_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_label_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mac_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_magick_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_map_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mask_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mat_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_matte_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_meta_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_miff_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mono_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mpc_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mpeg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mpr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_msl_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mtv_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mvg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_null_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_otb_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_palm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pango_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pattern_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pcd_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pcl_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pcx_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pdb_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pdf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pes_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pict_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pix_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_plasma_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_png_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pnm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_preview_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ps_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ps2_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ps3_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_psd_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pwp_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_raw_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_rgb_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_rgf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_rla_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_rle_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_scr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_screenshot_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sct_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sfw_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sgi_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sixel_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_stegano_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sun_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_svg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_tga_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_thumbnail_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_tiff_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_tile_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_tim_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ttf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_txt_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_uil_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_url_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_uyvy_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_vicar_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_vid_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_viff_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_vips_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_wbmp_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_webp_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_wmf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_wpg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xbm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xc_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xcf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xpm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xps_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xtrn_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ycbcr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_yuv_.dll"
LoadFile "C:/php_imagick/ImageMagickObject.dll"
# enable imagick end ===========
5, último reinicio de apache
Finalmente lo puse a funcionar, esto es lo que tenía que hacer: (referenciado en http://refreshless.com/blog/imagick-pecl-imagemagick-windows/ )
- Instale una versión anterior de ImageMagick (6.7.7-5 Q16) disponible en este sitio web .
-
Instale los archivos DLL PECL Imagick (php_imagick-3.1.2-5.6-ts-vc11-x86.zip) descargados de
here
, colocando el archivo
php_imagick.dll
en el directorio PHPext
, y losCORE_RL_*_.dll
en el Apachebin
directorio. -
Agregue una variable
MAGICK_HOME
llamadaMAGICK_HOME
a la máquina, con el valor de[ImageMagick install dir]/modules/coders
. -
Reinicie apache y verifique
phpinfo( )
.
Si esto no funciona para usted, pruebe diferentes versiones de los binarios de ImageMagick y diferentes versiones de las bibliotecas PECL.
Otra solución que funcionó en 3 instalaciones diferentes de Windows (2 Windows 7 y 1 Windows 8.1) es combinar:
ImageMagick-6.7.9-10-Q16-windows.exe con
xampp-win32-1.8.3-5-VC11-installer.exe .
Por supuesto, tendrá que agregar php_imagick.dll a la carpeta php / ext y también agregar la extensión php_imagick.dll a php.ini. Reinicie Apache después de hacer todo lo anterior y si se queja de cosas faltantes, reinicie su computadora.
Tengo
php 5.6 NTS x64
instalado en Windows 8.1 pro para mi sistema de desarrollo.
EDITAR: Este procedimiento también funcionó con Windows 10 pro.
No pude conseguir que Imagick trabajara con PHP usando una versión anterior de ImageMagick como en la respuesta aceptada y fue difícil encontrar espejos con los binarios seguros exactos necesarios (los binarios en el espejo en la respuesta aceptada se descargaron como versiones diferentes a las mencionadas) .
En todos los pasos a continuación, asegúrese de hacer coincidir su arquitectura PHP (x86 / x64 y NTS / TS) con la arquitectura del binario. Si está utilizando PHP x86, reemplace la versión x64 de las descargas con la versión x86 (o 32 bits). Lo mismo se aplica a las versiones de PHP Thread-Safe (TS) y Non-Thread-Safe (NTS).
Finalmente conseguí que todo funcionara realizando lo siguiente:
-
Navegue a
https://pecl.php.net/package/imagick
y descargue la última DLL
(3.3.0RC1)
al momento de esta respuesta. -
Extraiga
php_imagick.dll
enD:/php5.6/ext
-
Extraiga todos los
CORE_RL_*.dll
aD:/php5.6
- Asegúrese de queD:/php5.6
también se agregue a laPATH
de las variables de entorno del sistema -
Agregue
extension = php_imagick.dll
aD:/php5.6/php.ini
- Reinicie el servidor web incorporado Apache / PHP
-
Verifique la información de PHP para asegurarse de que el módulo esté instalado correctamente
Tenga en cuenta la versión resaltada de ImageMagick
(ImageMagick 6.9.1-2 Q16 x64)
y los formatos admitidos que faltan -
Descargue e instale la versión correspondiente de ImageMagick a
D:/php5.6/bin
desde http://www.imagemagick.org/script/binary-releases.php - Asegúrese de que la opciónAdd Path to Environment Variables
esté marcada o agregue manualmente eso . -
Cargue un símbolo del sistema
(se ejecuta como administrador que obliga a actualizar la variable de ruta del sistema)
y asegúrese de
convert --version
muestra la versión correcta -
Elimine los archivos
CORE_RL_*.dll
previamente extraídos enD:/php5.6
(se cargarán a través de la ruta de ImageMagick; de lo contrario, su instalación de PHP puede volverse inestable con los dlls PECL) - Reinicie el servidor web incorporado Apache / PHP
- Verifique la información de PHP para asegurarse de que el módulo todavía esté instalado correctamente y ahora esté cargando los formatos compatibles con Imagick
-
Opcionalmente descargue e instale Ghostscript a
D:/php5.6/bin
para poder convertir archivos PDF a imágenes de http://sourceforge.net/projects/ghostscript/ asegúrese de que coincida con la arquitectura para su instalación
No necesitaba agregar
MAGICK_HOME
para que Imagick funcionara con el servidor web incorporado de PHP o CGI, pero es posible que sea necesario para Apache con
mod_php
.
Asegúrese de que el usuario que ejecuta PHP tenga permiso para ejecutar la
convert
.
Esto debe heredarse a través de
D:/php5.6/bin
pero en caso de que elija instalar en
C:/Program Files
.
Es posible que tenga problemas debido a sus permisos restringidos.
Alternativa para la conversión de imágenes
Como se señaló en los comentarios, también puede descargar las dependencias de versión de ImageMagick necesarias y extraer los archivos
exe
y
dll
desde el directorio
bin
directamente en su directorio
D:/php5.6
.
Las dependencias se pueden encontrar en el sitio web de PECL
http://windows.php.net/downloads/pecl/deps/
El uso de las dependencias PECL elimina la necesidad de descargar y ejecutar directamente el instalador de la versión de ImageMagick correspondiente del sitio web del proveedor.
Con el método de dependencias PECL hubo problemas con los archivos excluidos necesarios para las conversiones de PDF con GhostScript.
Consideraciones Especiales
Asegúrese de reorganizar la variable de entorno del sistema PATH para que
%SystemRoot%/system32/convert.exe
no anule el
D:/php5.6/bin/convert.exe
.
Al agregar su ruta PHP a la izquierda de system32, así:
RUTA:
D:/php5.6/bin;%SystemRoot%/system32;%SystemRoot%;...
Esto obligará a su sistema a buscar archivos ejecutables dentro de
D:/php5.6/bin
antes de
%SystemRoot%/system32
Reemplace
D:/php5.6/bin/convert.exe
con la ruta a donde instaló ImageMagick o la ruta a donde se encuentra
convert.exe
https://technet.microsoft.com/en-us/library/cc723564.aspx#XSLTsection127121120120
Así es como lo resolví
Realmente había luchado con todas estas respuestas. Mirando hacia atrás, me di cuenta de que la mayoría de ellos son correctos, excepto que omiten algunos detalles muy finos que son cruciales.
1) En primer lugar, antes de comenzar a descargar bibliotecas o archivos DLL, debe comenzar con su php_info para descubrir estos tres parámetros muy importantes.
Ejecute PHP_Info y verifique:
- Arquitectura: x86 o x64. Su computadora puede ser x64 pero su php se está ejecutando en x86, así que no asuma
- Seguridad del hilo: sí o no. También muy importante.
- Su versión PHP
2) Descargue ImageMagick desde: https://windows.php.net/downloads/pecl/deps/ . Mi computadora es x64 pero mi php ejecuta x86, así que descargué ImageMagick-7.0. - -vc * -x86.zip
3) Descomprima y copie todas las DLL de la subcarpeta bin descomprimida en el directorio bin de Apache. Es un montón de CORE_RL_ .dll e IM_MOD_RL_ .dll más algunas otras DLL. En mi caso, [zippeddownload] / bin / * -> copiado a -> C: / Xampp / apache / bin
4) Vaya a http://pecl.php.net/package/imagick . Puede seleccionar el enlace zip o solo el enlace DLL. Prefiero el enlace DLL. En mi caso seleccioné la última versión 3.4.3. Lo que luego me llevó a https://pecl.php.net/package/imagick/3.4.3/windows . Aquí tenemos que hacer otra elección cuidadosa
- Mi versión php es PHP 5.6
- La seguridad de subprocesos está habilitada
- La arquitectura en la que se ejecuta php es x86
- Así que tomé 5.6 Thread Safe (TS) x86
5) Descomprima y copie "php_imagick.dll" en la carpeta php ext . Y todos los demás archivos DLL a la carpeta php
6) Usando un editor, abra php.ini . Busque "extension =" y agregue esta línea extension = php_imagick.dll como una de ellas.
7) Reinicie Xampp / Wamp o simplemente reinicie Apache y ejecute PHP_INFO nuevamente. Imagick debería aparecer. Si aún no puede verlo, consulte este enlace http://php.net/manual/en/imagick.setup.php#119084
Consejo adicional: es posible que deba descargar Visual C ++ 14 runtime . Desde este enlace https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Elegí la última versión.