Installieren Sie ext-zip für Mac

55

Ich versuche zu laufen composer updateund erhalte die folgenden Fehler:

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].

beim Laufen composer update

Über Nacht habe ich den Fehler meines Lebens gemacht und meinem Mac erlaubt, das Betriebssystem automatisch zu aktualisieren, also bin ich jetzt in macOS Catalina.

Ich habe versucht hinzuzufügen

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

zu meinem composer.json..aber es wird diese Erweiterung nicht heruntergeladen.

Abdul
quelle
1
Dieser Fehler bedeutet nur, dass auf Ihrem PHP die php-zipErweiterung nicht installiert ist.
Latheesan
Mit dem gleichen Problem, sagt phpinfo, dass es installiert ist ... sehr seltsam ... danke Apple ...
Jamie Robinson
@ JamieRobinson lassen Sie mich wissen, wenn Sie eine Lösung gefunden haben, bitte!
Abdul
@Abdul Das Beste, was ich bisher habe, ist die Verwendung von "Composer Install --ignore-platform-reqs" ... es ist keine Lösung, aber es umgeht das Problem kurzfristig
Jamie Robinson
@ JamieRobinson zu Ihrer Information, jemand antwortete mit etwas, das für mich funktionierte.
Abdul

Antworten:

129

Ich hatte das gleiche Problem, nachdem ich meinen Mac auf Catalina aktualisiert hatte. Hier ist, was für mich funktioniert hat.

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

Laden Sie dann Ihre Konsole neu.

Es wird PHP 7.3.10 mit Zip-Modul installieren. Sie können php -v verwenden, um nach der Version zu suchen, und php -m für die Module.

Aldranor
quelle
Vielen Dank! das hat wie ein Zauber funktioniert!
Abdul
2
@Aldranor hat das Gefühl, dass dies fast funktioniert. Das Ausführen einer Brauinstallation klingt nach einem guten Plan. Jetzt jedoch "Fehler: Konnte sbin / php-fpm nicht symlink" "/ usr / local / sbin ist nicht beschreibbar." ... Brew wird auch sudo nicht ausführen ... irgendwelche Ideen?
Jamie Robinson
8
Endlich behoben! Das Ausführen von "Brew Doctor" besagt, dass dieser Ordner nicht vorhanden und nicht beschreibbar ist, und gibt Ihnen die Befehle zum Ausführen. Führen Sie diese Befehle aus, führen Sie den Link-Befehl erneut aus, laden Sie die Konsole neu, alles wieder normal :)
Jamie Robinson
8
Verwenden Sie 'Brew Link --force [email protected]', wenn Sie diese Warnung sehen "[email protected] ist nur für Fässer und muss mit --force verknüpft werden"
leeCoder
3
Dies hat funktioniert, aber erst nachdem ich hinzugefügt habe: export PATH="/usr/local/opt/[email protected]/bin:$PATH" export PATH="/usr/local/opt/[email protected]/sbin:$PATH"zu meiner .zshrc
Loosie94
14

Der folgende Befehl hat das Problem unter macOS Catalina behoben

brew link php@7.3 --force
Hamza Waleed
quelle
6

Wenn Brew Link für Sie nicht funktioniert, überprüfen Sie Ihre PHP-Version installiert von:

ls /usr/local/opt/php*

Hier sehen Sie eine Version als solche:

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

Sollte Ihnen eine Ausgabe geben wie:

/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

Jetzt müssen Sie das nur noch mit Ihrem $ PATH verknüpfen, was wie folgt geschehen kann:

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

Hinweis: Ich verwende .zshrc, da dies mein Terminal-Setup ist. Wenn Ihre Bash ist, verwenden Sie entsprechend.

Sie können überprüfen, welche Version von PHP jetzt mit Ihrem MacOS verknüpft ist, indem Sie Folgendes ausführen:

which php

Dies sollte Ihnen eine Ausgabe von geben:

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

Das ist es. Wenn Sie nun versuchen, ein Composer-Update durchzuführen, sollte das Erweiterungsproblem nicht auftreten.

Quelle (Teil davon): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602

SAVE.US_222
quelle
6

Am 10. März 2020 funktioniert es für mich:

brew install php  

Es ist der einzige Befehl über PHP, der funktioniert. Daher denke ich, dass die in den letzten Beiträgen gezeigten Befehle veraltet sind.

InfiniteRoads
quelle
1
24. März 2020 bestätigt
Frank Leal
26. März 2020 bestätigt.
Muhammad Ali
7. April Konform
PSN
14. April 2021. Aus der Zukunft bestätigt.
Pandem1c
4

Ich hatte Probleme mit Python Symlink während der brew install php.

/usr/local/Frameworks existierte nicht, also musste ich es erstellen: sudo mkdir /usr/local/Frameworks

cd /usr/local/

Dann musste ich es chown: sudo chown -R myuser:admin Frameworks

Ich habe die Berechtigungseinstellungen auf den Rest der Ordner in basiert /usr/local.

Dann könnte ich rennen brew link python. Dann rannte ich brew install phpwieder und es war vollbracht.

php -v Jetzt gibt mir PHP 7.3.10, bevor es PHP 7.3.18 war, denke ich.

tommyskott
quelle
Ich würde vorschlagen, ---> sudo chown -R $ (whoami) bin usw. zu verwenden, einschließlich lib sbin share var Frameworks <---- anstelle von ---> sudo chown -R myuser: admin Frameworks <---
Ben Spi
2

Anstatt die Verknüpfung zu erzwingen, können Sie das Problem auch in MacOS Catalina beheben

indem Sie den PHP-Binärpfad zu Ihrem Bash-Profil hinzufügen, z.

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
quelle
2

Wenn Sie dies nicht benötigen ext-zip(z. B. möchten Sie nur eine schnelle Lösung durchführen), können Sie die --ignore-platform-reqsOption verwenden, um die Anforderungen zu ignorieren:

$ composer update --ignore-platform-reqs
bschen
quelle
0

In meinem Fall musste ich einfach

brew link --overwrite php
João Felipe Marques Ribeiro
quelle