web-dev-qa-db-fra.com

Installez Imagick pour PHP et Apache sous Windows

Mesures que j'ai prises jusqu'à présent:

  1. J'ai installé Imagick sur mon ordinateur Win7. Ce dernier est installé et fonctionne correctement via une ligne de commande.
  2. J'ai extrait le contenu de php_imagick-3.1.2-5.6-ts-vc11-x86.Zip available here dans mon répertoire\PHP\ext. 
  3. Activé le imagick.dll dans php.ini
  4. Redémarré ...
  5. Aucune erreur lors du démarrage d'Apache.
  6. Je reçois toujours l'erreur Fatal error: Class 'Imagick' not found lorsque j'essaie d'exécuter un script utilisant Imagick.

Versions actuelles:

  • Windows 7 x64
  • Apache 2.4.10 x86 VC11 (à partir d'Apachelounge)
  • PHP 5.6.3 x86 VC11 TS (à partir 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 (à partir de ici )

J'utilisais une ancienne version de PHP et je pensais que Imagick fonctionnait bien, puis j'ai mis à jour PHP (et les DLL Imagick avec celle-ci). ça marche.

En regardant phpinfo( ), Imagick ne figure pas dans la liste et ne semble donc pas charger le module. Ce qui est étrange, car je ne reçois aucune erreur lors du démarrage d'Apache.

J'ai essayé à peu près tous les écrits et procédures pas à pas pour installer Imagick pour PHP sous Windows, mais ils semblent tous avoir été écrits pour des versions plus anciennes de PHP.

Est-ce que quelqu'un peut m'aider à installer et à installer ceci? Il semble qu'il manque juste une étape que je n'arrive pas à comprendre. Si vous avez besoin de plus d'informations, s'il vous plaît demander. Je vais vous chercher tout ce que je peux pour vous aider.

8
Benjam

J'aiphp 5.6 NTS x64installé sur Windows 8.1 pro pour mon système de développement.

EDIT: Cette procédure a également fonctionné avec Windows 10 pro.

Je ne parvenais pas à utiliser Imagick avec PHP avec une version antérieure d'ImageMagick, comme dans la réponse acceptée, et il était difficile de trouver des miroirs contenant exactement les fichiers binaires sûrs (les fichiers binaires du miroir dans la réponse acceptée téléchargée). sous forme de versions différentes de celles répertoriées).

Dans toutes les étapes ci-dessous, veillez à faire correspondre votre architecture PHP (x86/x64 et NTS/TS) à l'architecture du binaire. Si vous utilisez PHP x86 - remplacez la version x64 des téléchargements par la version x86 (ou 32 bits). Il en va de même pour les versions PHP de Thread-Safe (TS) et non-Thread-Safe (NTS).

J'ai finalement réussi à tout faire en effectuant ce qui suit:

  1. Accédez à https://pecl.php.net/package/imagick Et téléchargez le dernier DLL(3.3.0RC1)au moment de cette réponse. Imgur
  2. Extrairephp_imagick.dllàD:\php5.6\ext
  3. Extrayez tous lesCORE_RL_*.dllfichiers dansD:\php5.6- assurez-vous queD:\php5.6est également ajouté à la PATH de vos variables d’environnement système}
  4. Ajouterextension = php_imagick.dllàD:\php5.6\php.ini
  5. Redémarrez le serveur Web intégré Apache/PHP
  6. Vérifiez PHP Info pour vous assurer que le module est installé correctement Imgur _ {Notez la version ImageMagick en surbrillance} _(ImageMagick 6.9.1-2 Q16 x64)et les formats pris en charge manquants
  7. Téléchargez et installez la version correspondante d'ImageMagick dansD:\php5.6\bindepuis http://www.imagemagick.org/script/binary-releases.php - Assurez-vous que l'option Add Path to Environment Variables est cochée ou ajoutez-la manuellement Imgur.
  8. Chargez une commande Invite (exécutée en tant qu'administrateur, ce qui force l'actualisation de la variable du chemin d'accès système)} et assurez-vous que convert --version affiche la version correcte. Imgur
  9. Supprimez les fichiersCORE_RL_*.dllprécédemment extraits dansD:\php5.6(ils seront chargés via le chemin ImageMagick - sinon votre installation PHP risque de devenir instable avec les dll PECL).
  10. Redémarrez le serveur Web intégré Apache/PHP
  11. Vérifiez PHP Info pour vous assurer que le module est toujours installé correctement et qu'il charge maintenant les formats pris en charge par Imagick. Imgur
  12. Téléchargez et installez éventuellement Ghostscript dansD:\php5.6\binpour pouvoir convertir les PDF en images à partir de http://sourceforge.net/projects/ghostscript/ _ ​​veillez à bien correspondre à l'architecture de votre installation

Je n'ai pas eu besoin d'ajouter MAGICK_HOME pour qu'Imagick fonctionne avec le serveur Web intégré ou le CGI PHP, mais cela peut être nécessaire pour Apache avec mod_php. Assurez-vous que l'utilisateur qui exécute PHP est autorisé à exécuter convert. Cela devrait être hérité via D:\php5.6\bin, mais au cas où vous choisiriez d’installer à C:\Program Files. vous pouvez avoir des problèmes en raison de ses autorisations restreintes.


Alternative pour la conversion d'image

Comme indiqué dans les commentaires, vous pouvez également télécharger les dépendances de version ImageMagick requises et extraire les fichiers exe et dll du répertoire bin directement dans votre répertoireD:\php5.6. Site Web de PECL http://windows.php.net/downloads/pecl/deps/

L'utilisation des dépendances PECL évite de télécharger directement et D'exécuter le programme d'installation de la version ImageMagick correspondant à partir du site Web du fournisseur.

Avec la méthode des dépendances PECL, il existait des problèmes avec les fichiers exclus nécessaires pour les conversions PDF à l'aide de GhostScript.


Considérations spéciales

Veillez à réorganiser votre variable d’environnement système PATH de sorte que %SystemRoot%\system32\convert.exe ne remplace pas le D:\php5.6\bin\convert.exe.

En ajoutant votre chemin PHP à gauche de system32, comme suit: PATH: D:\php5.6\bin;%SystemRoot%\system32;%SystemRoot%;...

Cela forcera votre système à rechercher les fichiers exécutables dans D:\php5.6\bin avant %SystemRoot%\system32

Remplacez D:\php5.6\bin\convert.exe par le chemin où vous avez installé ImageMagick ou celui où est situé convert.exe}

https://technet.Microsoft.com/en-us/library/cc723564.aspx#XSLTsection127121120120

31
fyrye

J'ai enfin réussi à le faire fonctionner, voici ce que je devais faire: (Référencé depuis http://refreshless.com/blog/imagick-pecl-imagemagick-windows/ )

  1. Installez une version plus ancienne d’ImageMagick (6.7.7-5 Q16) disponible sur ce site Web .
  2. Installez les fichiers PECL Imagick DLL (php_imagick-3.1.2-5.6-ts-vc11-x86.Zip) téléchargés depuis cette page Web , en mettant le fichier php_imagick.dll dans le PHP ext répertoire et les fichiers CORE_RL_*_.dll du répertoire Apache bin.
  3. Ajoutez une variable d'environnement appelée MAGICK_HOME à la machine, avec la valeur [ImageMagick install dir]\modules\coders.
  4. Redémarrez Apache et vérifiez phpinfo( ).

Si cela ne fonctionne pas pour vous, essayez différentes versions des fichiers binaires ImageMagick et différentes versions des bibliothèques PECL.

8
Benjam
  1. Téléchargez la version appropriée de l'extension à partir de http://windows.php.net/downloads/pecl/releases/imagick/ J'ai choisi 3.1.2, qui est la dernière version non bêta de cette fois
    • Décompressez et copiez php_imagick.dll dans le dossier PHP ext
    • ajouter [PHP_IMAGICK] extension = php_imagick.dll à php.ini
    • Téléchargez la version recommandée d’Imagick et installez-la à l’adresse: http://imagemagick.org/script/binary-releases.php#windows (I A choisi d’avoir des en-têtes C et des objets COM lors de l’installation)
    • Redémarrer Apache
    • Vérifiez phpinfo () pour la section Imagick ... la voilà!
0

Une autre solution fonctionnant sur 3 installations Windows différentes (2 Windows 7 et 1 Windows 8.1) consiste à combiner:

ImageMagick-6.7.9-10-Q16-windows.exe avec 

xampp-win32-1.8.3-5-VC11-installer.exe .

Bien sûr, vous devrez ajouter le php_imagick.dll au dossier php/ext et également ajouter une extension php_imagick.dll à php.ini. Redémarrez Apache après avoir effectué tout ce qui est décrit ci-dessus et, le cas échéant, redémarrez votre ordinateur. 

0
lost in binary

Voici comment je l'ai résolu

J'avais vraiment eu du mal avec toutes ces réponses. En regardant en arrière, je me suis rendu compte que la plupart d’entre elles sont correctes, à l’exception d’omissions très biendétails cruciaux.

1).Avant tout, avant de commencer à télécharger les bibliothèques ou les DLL que vous souhaitez utiliser avec votre php_info, vous devez connaître ces trois paramètres très importants.

Exécutez PHP_Info et vérifiez:

  1. Architecture: x86 ou x64. Votre ordinateur est peut-être x64 mais votre php fonctionne sous x86 alors ne supposez pas 
  2. Sécurité du fil: oui ou non. Aussi très important.
  3. Votre version PHP

2).Télécharger ImageMagick à partir de: https://windows.php.net/downloads/pecl/deps/ . Mon ordinateur est x64 mais mon php fonctionne sous x86, j'ai donc téléchargé ImageMagick-7.0 .-- vc * -x86.Zip

3).Décompressez et copiez toutes les DLL du sous-dossier bin décompressé dans le répertoire bin Apache. C'est un groupe de CORE_RL _.dll et IM_MOD_RL_. Dll plus quelques autres DLL. Dans mon cas, [téléchargement zipped]/bin/* -> copié dans -> C:\Xampp\Apache\bin

4).Allez à http://pecl.php.net/package/imagick . Vous pouvez sélectionner le lien Zip ou uniquement le lien DLL. Je préfère le lien DLL. Dans mon cas, j'ai sélectionné la dernière version 3.4.3. Ce qui m’a ensuite conduit vers https://pecl.php.net/package/imagick/3.4.3/windows . . Ici, nous devons faire un autre choix prudent.

  1. Ma version php est PHP 5.6
  2. La sécurité des threads est enabled
  3. L'architecture php est en cours d'exécution est x86
  4. J'ai donc pris 5.6 Thread Safe (TS) x86

5).Décompressez et copiez "php_imagick.dll" dans le dossier php ext. Et tous les autres fichiers DLL dans le dossier php

6).À l'aide d'un éditeur, ouvrez php.ini. Recherchez "extension =" et ajoutez cette ligne extension = php_imagick.dllcomme l'un d'entre eux.

7).Redémarrez Xampp/Wamp ou redémarrez Apache et exécutez PHP_INFO à nouveau. Imagick devrait afficher. Si vous ne le voyez toujours pas, reportez-vous à ce lien http://php.net/manual/fr/imagick.setup.php#119084

Astuce bonus:Vous devrez peut-être télécharger visual c ++ 14 runtime. À partir de ce lien https://support.Microsoft.com/en-us/help/2977003/the-latest-supported- visual-c-downloads J'ai choisi la dernière version.

0
Maxximum Rider

1, Premier téléchargement du paquet php_imagick à droite, en fonction de votre situation, j'utilise php_imagick-3.4.3-7.1-ts-vc14-x64.Zip à partir de:

https://windows.php.net/downloads/pecl/snaps/imagick/3.4.3/php_imagick-3.4.3-7.1-ts-vc14-x64.Zip

2, puis décompressez php_imagick-3.4.3-7.1-ts-vc14-x64.Zip dans le dossier C:/php_imagick

3, Ajoutez ensuite l'extension = C: /php_imagick/php_imagick.dll dans php.ini

4, ajoutez maintenant * .dll (sauf php_imagick.dll) à votre fichier Apache vhost, par exemple:

# 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, dernier redémarrage d'Apache

0
Jerome