0 votes

imagick.so.so après la mise à jour de brew + php.ini "imagick.so" au lieu de imagick.so

J'ai fait un brew upgrade J'ai php 8.1 sur osx 12.x.

Imagick ne fonctionne pas

PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/local/lib/php/pecl/20210902/imagick.so (dlopen(/usr/local/lib/php/pecl/20210902/imagick.so, 0x0009): tried: '/usr/local/lib/php/pecl/20210902/imagick.so' (no such file), '/usr/local/lib/imagick.so' (no such file), '/usr/lib/imagick.so' (no such file)), /usr/local/lib/php/pecl/20210902/imagick.so.so (dlopen(/usr/local/lib/php/pecl/20210902/imagick.so.so, 0x0009): tried: '/usr/local/lib/php/pecl/20210902/imagick.so.so' (no such file), '/usr/local/lib/imagick.so.so' (no such file), '/usr/lib/imagick.so.so' (no such file))) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/local/lib/php/pecl/20210902/imagick.so (dlopen(/usr/local/lib/php/pecl/20210902/imagick.so, 0x0009): tried: '/usr/local/lib/php/pecl/20210902/imagick.so' (no such file), '/usr/local/lib/imagick.so' (no such file), '/usr/lib/imagick.so' (no such file)), /usr/local/lib/php/pecl/20210902/imagick.so.so (dlopen(/usr/local/lib/php/pecl/20210902/imagick.so.so, 0x0009): tried: '/usr/local/lib/php/pecl/20210902/imagick.so.so' (no such file), '/usr/local/lib/imagick.so.so' (no such file), '/usr/lib/imagick.so.so' (no such file))) in Unknown on line 0
Configuration File (php.ini) Path: /usr/local/etc/php/8.1
Loaded Configuration File:         /usr/local/etc/php/8.1/php.ini
Scan for additional .ini files in: /usr/local/etc/php/8.1/conf.d
Additional .ini files parsed:      /usr/local/etc/php/8.1/conf.d/ext-opcache.ini

Je pense que l'erreur pertinente est d'environ /usr/local/lib/imagick.so.so et j'ai un fichier /usr/local/lib/php/pecl/20210902/imagick.so qu'il vaudrait mieux lier.

  • J'ai aussi remarqué que dans mon php.ini J'ai extension="imagick.so" que j'ai renommé extension=imagick.so
  • si je ls /usr/local/lib/php/pecl/20210902/ Je n'obtiens aucun fichier maintenant si je ls /usr/local/lib/php/pecl/ puis utiliser l'autocomplétion pour terminer 20210902 Je reçois imagick.so

J'ai essayé de créer un lien symbolique dans /usr/local/lib/ mais cela ne fonctionne pas. Comment résoudre ce genre d'erreur ?

a essayé de faire un lien symbolique sudo ln -s /usr/local/lib/php/pecl/20210902/imagick.so /usr/lib/imagick.so mais j'obtiens "opération non autorisée".

$ ls -l /usr/local/lib/php/pecl/20210902/imagick.so /usr/local/lib/imagick.so
ls: /usr/local/lib/php/pecl/20210902/imagick.so: No such file or directory
lrwxr-xr-x  1 user  admin  43 Dec  1 10:58 /usr/local/lib/imagick.so -> /usr/local/lib/php/pecl/20210902/imagick.so
$ ls -l /usr/local/lib/php/pecl/*/imagick.so
-rw-r--r--  1 ed  admin  438784 Jun 16 17:25 /usr/local/lib/php/pecl/20190902/imagick.so

J'ai fait ce que @nohillside a suggéré ci-dessous et bien que cela ait résolu le problème, je crois qu'il y a encore un problème lié au même problème

php --ini

PHP Warning:  PHP Startup: imagick: Unable to initialize module
Module compiled with module API=20190902
PHP    compiled with module API=20210902
These options need to match
 in Unknown on line 0

J'essaie de réinstaller en pecl uninstall imagick mais je reçois la même erreur

pecl uninstall imagick
PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/local/lib/php/pecl/20210902/imagick.so (dlopen(/usr/local/lib/php/pecl/20210902/imagick.so, 0x0009): Library not loaded: /usr/local/opt/imagemagick/lib/libMagickWand-7.Q16HDRI.10.dylib
  Referenced from: /usr/local/lib/php/pecl/20190902/imagick.so
  Reason: tried: '/usr/local/opt/imagemagick/lib/libMagickWand-7.Q16HDRI.10.dylib' (no such file), '/usr/local/lib/libMagickWand-7.Q16HDRI.10.dylib' (no such file), '/usr/lib/libMagickWand-7.Q16HDRI.10.dylib' (no such file)), /usr/local/lib/php/pecl/20210902/imagick.so.so (dlopen(/usr/local/lib/php/pecl/20210902/imagick.so.so, 0x0009): tried: '/usr/local/lib/php/pecl/20210902/imagick.so.so' (no such file), '/usr/local/lib/imagick.so.so' (no such file), '/usr/lib/imagick.so.so' (no such file))) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/local/lib/php/pecl/20210902/imagick.so (dlopen(/usr/local/lib/php/pecl/20210902/imagick.so, 0x0009): Library not loaded: /usr/local/opt/imagemagick/lib/libMagickWand-7.Q16HDRI.10.dylib
  Referenced from: /usr/local/lib/php/pecl/20190902/imagick.so
  Reason: tried: '/usr/local/opt/imagemagick/lib/libMagickWand-7.Q16HDRI.10.dylib' (no such file), '/usr/local/lib/libMagickWand-7.Q16HDRI.10.dylib' (no such file), '/usr/lib/libMagickWand-7.Q16HDRI.10.dylib' (no such file)), /usr/local/lib/php/pecl/20210902/imagick.so.so (dlopen(/usr/local/lib/php/pecl/20210902/imagick.so.so, 0x0009): tried: '/usr/local/lib/php/pecl/20210902/imagick.so.so' (no such file), '/usr/local/lib/imagick.so.so' (no such file), '/usr/lib/imagick.so.so' (no such file))) in Unknown on line 0

si je fais ls /usr/local/lib/php/pecl/ j'obtiens deux versions 20190902 20210902

0 votes

Il semble y avoir une incompatibilité entre les versions installées de PHP et d'imagemagick. Peut-être que tout supprimer/désinstaller et réinstaller est plus facile que d'essayer de résoudre ce problème.

0 votes

@nohillside oui je suis d'accord c'est pourquoi j'ai essayé de désinstaller imagick mais comme vous pouvez le voir je ne peux plus. pecl uninstall échoue. Je ne sais pas comment m'y prendre ? J'ai déjà désinstallé imagemagick avec homebrew. Comment le désinstalleur peut-il être cassé ? Dois-je supprimer les fichiers manuellement ? quels fichiers ?

0voto

nohillside Points 82672

Les détails comptent, 20210902 n'est pas la même chose que 20190902 :-)

Exécuter

sudo rm /usr/local/lib/imagick.so
sudo ln -s /usr/local/lib/php/pecl/20190902/imagick.so /usr/local/lib/imagick.so
sudo chmod 644 /usr/local/lib/imagick.so

0 votes

Votre réponse a résolu le problème, je crois, mais en a également révélé un autre ; PHP est toujours confus avec ces deux versions :) J'ai mis à jour la question, faites-moi savoir si cela n'est pas lié et j'accepterai votre solution telle quelle.

0 votes

Je ne peux pas désinstaller imagick avec pecl :) mise à jour de la question

0 votes

Pour le faire fonctionner, j'ai dû faire ce que vous avez dit mais avec 20290902 après avoir tout réinstallé un million de fois.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X