J’ai installé l’imagick d’ ici (ImageMagick-7.0.3-1-Q16-x64-dll) et le dll (TS 32 bit) d’ ici . Et aussi append le CORE_RL_*
à C:\xampp\apache\bin
MAIS j’obtiens toujours l’erreur suivante lorsque je lance le serveur laravel.
ERREUR: Avertissement: Démarrage de PHP: Impossible de charger la bibliothèque dynamic ‘C: \ xampp \ php \ ext \ php_imagick.dll’ – Le module spécifié est introuvable. dans Unknown sur la ligne 0
En outre, j’ai placé le fichier dll dans C:\xampp\php\ext\php_imagick.dll
.
En outre, l’imagick est affiché dans le phpinfo()
.
Et quand je l’utilise avec laravel, j’obtiens l’erreur suivante.
Obtenir Imagick pour travailler sur Windows a toujours été un peu raté, comme indiqué ici, un bon guide http://stackoverflow.com/a/36378764/1090867
Mais il manque un point important
Vous n’avez pas besoin de mettre le binary dans le dossier PHP!
Alors, voici les étapes que je suis moi-même chaque fois que je dois le faire. Cela devrait fonctionner pour apache, nginx ou IIS.
Découvrez votre version et configuration php
Vous avez besoin de la version, de l’architecture, du compilateur et de la sécurité des threads
si la sécurité des threads est désactivée c’est NTS qui est activé
Obtenir une installation d’une copie de imageMagick il suffit de s’assurer qu’il correspond à votre architecture, cela doit également être dll.exe plutôt que la version statique.
En ce qui concerne Q8 et Q16, je vous laisse à vous mais les deux versions fonctionneront
http://www.imagemagick.org/script/binary-releases.php#windows
Je recommande de changer le nom du répertoire d’installation en quelque chose de générique comme C:\Imagemagick
car j’ai déjà eu des problèmes avec le nom de répertoire par défaut avec PHP et Windows.
Installez-vous simplement, mais cochez la case Ajouter un chemin d’application et normalement, je coche les anciens outils.
Une fois son installation effectuée, accédez à vos variables d’environnement et assurez-vous qu’elles sont bien dans le chemin. Il n’y a pas besoin de copier quoi que ce soit dans votre dossier php
Juste pour vous assurer que tout fonctionne, ouvrez la ligne de commande et tapez convert –version, vous devriez obtenir une réponse
C’est malheureusement la partie difficile et peut être un peu d’essais et d’erreurs. J’ai trouvé ce qui suit fournit le meilleur php_imagick.dll qui semble fonctionner 9 fois sur 10
Choisissez simplement la version qui correspond à votre installation.
Si cela ne fonctionne pas, allez sur php.net et essayez chaque version jusqu’à ce que l’une fonctionne … (commencez au plus tard)
http://windows.php.net/downloads/pecl/releases/imagick/
Une fois que vous avez un php_imagick.dll, placez-le dans votre dossier php/ext/
localisez votre fichier php.ini
allez au bas (ou où que soient vos extensions) et ajoutez l’ extension=php_imagick.dll
Redémarrez PHP (ou votre ordinateur) et cela devrait fonctionner si ce n’est pas essayer un autre php_imagick.dll et répéter.
Ensuite, essayez une version légèrement plus ancienne d’Imagick. J’utilise normalement la version 6.8.6-8 Q16.
S’il vous plaît noter que je ne l’ai vraiment fait que sur Windows 7 et Windows Server 2008, 2008 R2, 2012 et 2012 R2 tous x64 avec x86 php
Si cela ne fonctionne toujours pas, vous devrez probablement copier les fichiers CORE_RL
dans votre répertoire imagick, cela cause normalement plus de problèmes, mais si vous êtes à court d’idées, essayez-le.
Je viens de rencontrer ce problème. Seulement j’utilise PHP sur la ligne de commande (PHP CLI). Le problème réside dans les dépendances du fichier php_imagick.dll
principal. PHP tentera de charger l’extension, mais comme Windows ne peut pas trouver les DLL CORE_RL_
, l’extension ne pourra pas se charger et le message d’erreur / avertissement concernant l’impossibilité de charger la DLL apparaîtra. Il est utile de savoir comment Windows charge les DLL:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx
C’est assez compliqué, mais vous pouvez voir que la raison pour laquelle Apache /bin
fonctionne avec Apache est que httpd.exe
se trouve dans ce répertoire. Toutefois, lorsque vous utilisez PHP CLI, les DLL doivent être situées dans le même répertoire que php.exe
.
Si vous ne souhaitez pas que des DLL en double flottent, ajoutez le répertoire contenant php.exe
au système PATH et placez toutes les DLL CORE_RL_
cet CORE_RL_
. Le PATH est la dernière chose recherchée, mais cela fonctionnera très bien. Si vous ne voulez pas d’entrées parasites dans votre système PATH, définissez les informations PATH supplémentaires uniquement au démarrage d’Apache.