installer ext-zip pour Mac

55

J'essaie de courir composer updateet j'obtiens les erreurs suivantes:

Problem 1
    - The requested PHP extension ext-zip * is missing from your system. Install or enable PHP's zip extension.
  Problem 2
    - maatwebsite/excel 3.1.10 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.11 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.12 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.13 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.14 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.15 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.16 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.17 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.7 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.8 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.9 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.x-dev requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.2.x-dev requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.0 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.1 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.2 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.3 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.4 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.5 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.6 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - phpoffice/phpspreadsheet 1.9.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.2 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.7.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.6.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.2 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.4.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.4.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for maatwebsite/excel ^3.1.0 -> satisfiable by maatwebsite/excel[3.1.0, 3.1.1, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.16, 3.1.17, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.x-dev, 3.2.x-dev].

lors de l'exécution composer update

Du jour au lendemain, j'ai fait l'erreur de ma vie et j'ai autorisé mon Mac à mettre à jour automatiquement le système d'exploitation, je suis donc maintenant dans macOS Catalina.

J'ai essayé d'ajouter

 "require": {
    "ext-zip": "*",
 }

à mon composer.json..mais ce n'est pas télécharger cette extension.

Abdul
la source
1
Cette erreur signifie simplement que votre PHP n'a pas l' php-zipextension installée.
Latheesan
Ayant le même problème, phpinfo dit qu'il est installé ... très étrange ... merci Apple ...
Jamie Robinson
@JamieRobinson faites le moi savoir si vous avez trouvé un correctif s'il vous plaît!
Abdul
@Abdul, ce que j'ai de mieux à ce jour, c'est d'utiliser "composer install --ignore-platform-reqs" ... ce n'est pas une solution mais cela résout le problème à court terme
Jamie Robinson
@JamieRobinson pour votre information, quelqu'un a répondu avec quelque chose qui a fonctionné pour moi.
Abdul

Réponses:

129

J'ai eu le même problème après avoir mis à jour mon Mac vers Catalina. Voici ce qui a fonctionné pour moi.

brew update
brew install php@7.3
brew link php@7.3

Rechargez ensuite votre console.

Il installera php 7.3.10 avec le module zip. Vous pouvez utiliser php -v pour vérifier la version et php -m pour les modules.

Aldranor
la source
Merci beaucoup! cela a fonctionné comme un charme!
Abdul
2
@Aldranor a l'impression que cela fonctionne presque, exécuter une installation de brassage semble être un bon plan. Cependant, maintenant "Erreur: impossible de créer un lien symbolique sbin / php-fpm" "/ usr / local / sbin n'est pas accessible en écriture." ... brew ne lancera pas sudo non plus ... des idées?
Jamie Robinson
8
Enfin corrigé! L'exécution de "brew doctor" indique que ce dossier n'existe pas et n'est pas accessible en écriture, et vous donne les commandes à exécuter. Exécutez ces commandes, exécutez à nouveau la commande link, rechargez la console, tout revient à la normale :)
Jamie Robinson
8
utilisez 'brew link --force [email protected]' si vous voyez cet avertissement "[email protected] est uniquement en fût et doit être lié avec --force"
leeCoder
3
Cela a fonctionné, mais seulement après avoir ajouté: export PATH="/usr/local/opt/[email protected]/bin:$PATH" export PATH="/usr/local/opt/[email protected]/sbin:$PATH"à mon .zshrc
Loosie94
14

La commande suivante a résolu le problème sur macOS Catalina

brew link php@7.3 --force
Hamza Waleed
la source
6

Si le lien de brassage ne fonctionne pas pour vous, vérifiez votre version php installée par:

ls /usr/local/opt/php*

Ici, vous verrez une version en tant que telle:

/usr/local/opt/php@7.3/bin:$PATH

Devrait vous donner une sortie comme:

/usr/local/opt/php@7.3:
INSTALL_RECEIPT.json        include
LICENSE                     lib
NEWS                        pecl
README.md                   sbin
bin                         share
homebrew.mxcl.php@7.3.plist

Il vous suffit maintenant de lier cela à votre $ PATH, ce qui peut être fait comme:

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Remarque: J'utilise .zshrc car c'est ma configuration de terminal. Si le vôtre est bash, utilisez en conséquence.

Vous pouvez vérifier quelle version de php est maintenant liée à votre MacOS en exécutant:

which php

Cela devrait vous donner une sortie de:

/usr/local/opt/php@7.3/bin/php

C'est ça. Maintenant, si vous essayez la mise à jour de Composer, cela ne devrait pas vous poser de problème d'extension.

Source (en partie): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602

SAVE.US_222
la source
6

Le 10 mars 2020, ça marche pour moi:

brew install php  

C'est la seule commande PHP qui fonctionne. Donc, je pense que les commandes affichées dans les derniers messages sont obsolètes.

InfiniteRoads
la source
1
24 mars 2020 confirmé
Frank Leal
26 mars 2020 confirmé.
Muhammad Ali
7 avril conforme
PSN
14 avril 2021. Confirmé de l'avenir.
Pandem1c
4

J'ai eu des problèmes avec symlink python au cours de la brew install php.

/usr/local/Frameworks n'existait pas donc je devais le créer: sudo mkdir /usr/local/Frameworks

cd /usr/local/

Ensuite, je devais le montrer: sudo chown -R myuser:admin Frameworks

J'ai basé les paramètres d'autorisation sur le reste des dossiers dans /usr/local.

Ensuite, je pourrais courir brew link python. Puis j'ai couru à brew install phpnouveau et c'est terminé.

php -v me donne maintenant php 7.3.10, avant c'était php 7.3.18 je pense.

tommyskott
la source
Je proposerais d'utiliser ---> sudo chown -R $ (whoami) bin etc include lib sbin share var Frameworks <---- au lieu de ---> sudo chown -R myuser: admin Frameworks <---
Ben Spi
2

Au lieu de forcer la liaison, vous pouvez également résoudre le problème dans MacOS Catalina

en ajoutant le chemin binaire php à votre profil bash par exemple:

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/[email protected]/sbinbin:$PATH"' >> ~/.bash_profile
MDeuerlein
la source
2

Si vous n'en avez pas besoin ext-zip(par exemple, vous voulez juste faire une solution rapide), vous pouvez utiliser l' --ignore-platform-reqsoption pour ignorer les exigences:

$ composer update --ignore-platform-reqs
bschen
la source
0

Dans mon cas, je devais simplement

brew link --overwrite php
João Felipe Marques Ribeiro
la source