web-dev-qa-db-fra.com

Erreur fatale: Classe 'imagick' introuvable

J'essaie d'installer imagemagic php extension sous WampServer 2.

  • J'ai téléchargé et installé ImageMagick. J'ai choisi ImageMagick-6.8.8-10-Q16-x86-dll.exe

  • J'ai téléchargé l'extension php. 

  • J'ai déplacé l'extension de DLL que je viens de télécharger vers C:\wamp\bin\php\php5.4.16\ext \

  • J'ai modifié le fichier php.ini (accessible via l'icône du bac wamp> clic droit> PHP> php.ini) et ajouté "extension = php_imagick.dll", sans les guillemets, à la liste des extensions.

  • J'ai redémarré Apache. Ne remarquant pas l'extension affichée sur la liste des extensions PHP à partir de l'icône de la barre des tâches, j'ai redémarré le serveur wampserver. Les extensions ImageMagick indiquent maintenant que la liste est activée.

Cependant, je ne peux pas l'utiliser. Effectuer un test rapide renvoie "Erreur fatale: la classe 'Imagick' est introuvable". Dans le phpinfo () montre seulement que le imagemagick a été ajouté aux variables env.

quand j'essaye de tester l'imagick:

$im = new imagick( 'test.jpg' );
// resize by 200 width and keep the ratio
$im->thumbnailImage( 200, 0);
 // write to disk
$im->writeImage( 'test_thumbnail.jpg' );

J'ai l'erreur: Fatal error: Class 'imagick' not found Qu'est-ce que je fais de travers? Je travaille avec win7 32 bit, phph 5-4-16 et Apache2

17
Dev DOS

Le seul moyen de le faire fonctionner est d'utiliser une version plus ancienne d'imagick: php_imagick-3.2.0b1-5.4-nts-vc9-x86 

1
Dev DOS
  • Essayez: php -m | grep imagick.
  • Si le résultat est vide, faites: Sudo apt-get remove --purge php5-imagick && Sudo apt-get install php5-imagick

Cordialement

8
Amadu Bah

faire une <?php phpinfo(); ?> dans n'importe quelle page. Cela montrera tous les services en cours d'exécution sur le service. S'il est en cours d'exécution, il vous indiquera dans quel répertoire.

Si vous utilisez le panneau WHM, vous devrez peut-être installer imageMagick à cet emplacement.

0
earnest

Avez-vous essayé d’utiliser le bon boîtier pour la classe, en commençant par «i» majuscule?

$im = new Imagick( 'test.jpg' );

En php, les noms de classe et de fichier ne sont pas sensibles à la casse, mais les chargeurs de classe le sont.

0
Paulo Amaral

Vous avez peut-être des versions de bibliothèque mal alignées. 

Voici comment je l'ai résolu

J'avais vraiment eu du mal avec toutes ces réponses. En y repensant, je me suis rendu compte que la plupart d’entre eux sont corrects, à l’exception d’omissions très fines qui sont cruciales.

1). Avant tout, avant de commencer à télécharger les bibliothèques ou les DLL que vous souhaitez utiliser avec votre php_info, consultez 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échargez 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 simplement 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 amené à https://pecl.php.net/package/imagick/3.4.3/windows . Ici, nous devons faire un autre choix judicieux.

  1. Ma version php est PHP 5.6
  2. La sécurité des threads est activée
  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 DLL fichiers dans le dossier php

6). À l'aide d'un éditeur, ouvrez php.ini. Recherchez "extension =" et ajoutez cette ligne extension = php_imagick.dll comme 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. Depuis 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