web-dev-qa-db-fra.com

Homebrew: installe une nouvelle formule php72-imagick

J'ai besoin d'installer le module imagick sur mon php 7.2 

Je vois

brew search php72
==> Searching local taps...
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...
No formula found for "php72".
Closed pull requests:
...
php72-imagick 3.4.3 (new formula) (https://github.com/Homebrew/homebrew-php/pull/4267)

Comment puis-je le faire?

J'ai aussi besoin d'aide pour argon

5
abkrim

Tout a changé en avril 2018, je pense. Homebrew _ n'agit plus en tant que gestionnaire de paquets pour PHP. Tous les éléments php-imagick, php-redis et php-other-extension sont maintenant partis et vous êtes maintenant supposé gérer des paquets PHP à l'aide de pecl comme tout le monde.

Alors, comment obtenir Imagick sous PHP? Notez que Imagick et ImageMagick sont deux choses différentes:

  • ImageMagick est la suite complète d'ImageMagick
  • Imagick est seulement la liaison PHP

Voici les étapes - si quelqu'un sait mieux ou des améliorations, faites le moi savoir via un commentaire et je vais mettre à jour.


Étape 1 - Supprimez tout ce qui pourrait créer un conflit

Avant de commencer, il est préférable de nettoyer tout ce qui est cassé ou inutile. Faites-en autant que vous êtes à l'aise:

brew rm php [email protected] [email protected] [email protected]
brew rm imagemagick

Étape 2 - Mettez à jour les outils de ligne de commande Xcode et obtenez les packages de construction}

Assurez-vous d’avoir installé les outils de ligne de commande Xcode avec:

xcode-select --install

Allez sur AppStore, cliquez sur Updates et mettez à jour tous les packages liés à Xcode, en particulier si vous avez récemment mis à niveau macOS.

Installer des outils de construction homebrew:

brew install pkg-config

Étape 3 - Installez ImageMagick

Vérifiez quelles options d'ImageMagick vous voulez avec:

brew options imagemagick

J'aime utiliser:

brew install imagemagick --with-x11 --with-librsvg --with-openexr --with-pango
hash -r

mais vous pouvez aimer Vanilla install:

brew install imagemagick
hash -r

Étape 4 - Installez l'homebrew PHP} _

Ensuite, installez la version homebrew de PHP avec:

brew install php
hash -r                    # Update bash's internal paths

Maintenant, assurez-vous que vous utilisez le bon homebrew PHP:

type php

Si cela vous dit:

/usr/local/...anything.../php

vous utilisez homebrew} _ PHP et vous pouvez passer à l'étape suivante.

Si cela vous dit:

/usr/bin/php

vous utilisez le PHP fourni par Apple. Si c'est ce que vous voulez exécuter, ignorez toute ma réponse, qui repose sur votre volonté d'utiliser homebrew PHP. Si vous obtenez cette réponse mais souhaitez exécuter homebrew PHP, votre PATH est défini de manière incorrecte. Vous devez mettre /usr/local/binavant/usr/bin pour récupérer tous les packages homebrew avant les programmes Apple, c.-à-d.

export PATH=/usr/local/bin:$PATH

Cette étape vous donne pecl - le gestionnaire de paquets PHP - également, car il fait partie de homebrew PHP.


Étape 5 - Installer Imagick

Maintenant vous pouvez installer Imagick avec pecl:

pecl install imagick

Si quelque chose ne va pas, voici quelques questions et réponses connexes ...

Q1. Comment puis-je trouver où se trouve mon fichier php.ini?

Essayez l'une de ces commandes:

pecl config-get php_ini                  # I get "/usr/local/etc/php/7.2/php.ini"
brew info php
php -i | grep "Loaded Configuration"     # I get "Loaded Configuration File => /usr/local/etc/php/7.2/php.ini"

Q2. Comment trouver où pecl installe les modules?

pecl config-get ext_dir                 # I get "/usr/local/lib/php/pecl/20170718"

Q3. Comment puis-je savoir quels modules PHP sont chargés?

php -m

Q4. Pourquoi PHP ne trouve-t-il pas mon module?

D'abord, localisez votre répertoire de modules en utilisant Q2. J'aime mettre cela dans le presse-papiers avec:

pecl config-get ext_dir | pbcopy

Puis éditez le fichier php.ini à partir de Q1. J'utilise vi, donc je ferais:

vi "$(pecl config-get php_ini)"

Ensuite, trouvez la ligne dans ce fichier qui ressemble à ceci:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir

et, ensuite (en utilisant le contenu de votre tampon de collage), donnez la ligne suivante (pas de point-virgule au début):

extension_dir = "/usr/local/lib/php/pecl/XXXXXX"

sur ma machine XXXXXX est 20170718. Si vous obtenez ce droit, tous les modules que vous installez via pecl seront visibles par votre homebrew PHP.

Q5. Comment puis-je voir tous mes paramètres PHP?

Vérifiez la configuration, les versions et les paramètres de PHP avec:

php -i

J'espère que cela pourra aider!

31
Mark Setchell

Dans mon cas (PHP 7.2.10 avec Homebrew) fonctionne:

pecl install imagick

Ouvrez le fichier php.ini et supprimez la ligne d'extension avec l'extension imagick.

Vérifier les fichiers * .ini avec

php --ini

Vous pouvez voir les chemins d'accès aux fichiers d'extension. Créez ou éditez un fichier imagick ini.

subl /usr/local/etc/php/7.2/conf.d/ext-imagick.ini

Le contenu du fichier peut être (vérifiez le chemin d'accès à imagick.so)

[imagick]
extension="/usr/local/opt/php/pecl/20170718/imagick.so"

Et redémarrez php avec

brew services restart php

Essayez, si le message d'erreur disparaît:

php -v

Et vérifiez l'extension imagick avec:

php -i | grep imagick

Si vous voyez une ligne avec imagick module => enabled vous avez résolu un problème.

1
vml

Vous voulez php72-gmagick, GraphicsMagick est un fork de ImageMagick 5.5.2.

Ou, vous pouvez toujours pecl install imagick.

0
Ben Poulson