zainstaluj ext-zip na Macu

55

Próbuję uruchomić composer updatei otrzymuję następujące błędy:

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

podczas biegania composer update

W ciągu nocy popełniłem błąd w moim życiu i zezwoliłem komputerowi Mac na automatyczną aktualizację systemu operacyjnego, więc teraz jestem w macOS Catalina.

Próbowałem dodać

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

do mojego composer.json..Ale to nie pobieranie tego rozszerzenia.

Abdul
źródło
1
Ten błąd oznacza po prostu, że twoje PHP nie ma php-zipzainstalowanego rozszerzenia.
Latheesan
Mając ten sam problem, phpinfo mówi, że jest zainstalowany ... bardzo dziwny ... dzięki Apple ...
Jamie Robinson
@JamieRobinson daj mi znać, jeśli znalazłeś poprawkę, proszę!
Abdul,
@Abdul najlepiej, jak dotąd, używa „kompozytora instalacji --ignore-platform-reqs” ... to nie jest rozwiązanie, ale rozwiązuje problem w krótkim okresie
Jamie Robinson
@JamieRobinson dla twojej informacji, ktoś odpowiedział na coś, co działało dla mnie.
Abdul,

Odpowiedzi:

128

Miałem ten sam problem po aktualizacji mojego Maca do Cataliny. Oto, co zadziałało dla mnie.

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

Następnie ponownie załaduj konsolę.

Zainstaluje php 7.3.10 z modułem zip. Możesz użyć php -v, aby sprawdzić wersję, a php -m dla modułów.

Aldranor
źródło
Dziękuję bardzo! działało jak urok!
Abdul
2
@Aldranor wydaje się, że to prawie działa, uruchomienie instalacji parzenia brzmi jak dobry plan. Jednak teraz pojawia się komunikat „Błąd: nie można dowiązać symbolicznie sbin / php-fpm” „/ usr / local / sbin nie jest zapisywalny.”… Brew też nie uruchomi sudo… żadnych pomysłów?
Jamie Robinson,
8
Wreszcie to naprawiłem! Uruchomienie „brew doctor” mówi, że ten folder nie istnieje i nie można go zapisać, i daje polecenia do uruchomienia. Uruchom te polecenia, uruchom ponownie polecenie link, ponownie załaduj konsolę, wszystko wraca do normy :)
Jamie Robinson
8
użyj „brew link --force [email protected]”, jeśli zobaczysz to ostrzeżenie: „[email protected] jest tylko dla beczek i musi być połączone z --force”
leeCoder
3
To zadziałało, ale dopiero po dodaniu: export PATH="/usr/local/opt/[email protected]/bin:$PATH" export PATH="/usr/local/opt/[email protected]/sbin:$PATH"do mojego .zshrc
Loosie94
13

Następujące polecenie naprawiło problem w macOS Catalina

brew link php@7.3 --force
Hamza Waleed
źródło
6

Jeśli link do brew nie działa dla ciebie, sprawdź wersję php zainstalowaną przez:

ls /usr/local/opt/php*

Tutaj zobaczysz wersję jako taką:

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

Powinien dać ci wynik, taki jak:

/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

Teraz wystarczy połączyć to ze swoją $ PATH, co można zrobić jako:

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

Uwaga: używam .zshrc, ponieważ taka jest konfiguracja mojego terminala. Jeśli twoje jest bash, użyj odpowiednio.

Możesz sprawdzić, która wersja php jest teraz połączona z systemem MacOS, uruchamiając:

which php

To powinno dać ci wynik:

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

Otóż ​​to. Teraz, jeśli spróbujesz zaktualizować kompozytora, nie powinno to powodować problemów z rozszerzeniem.

Źródło (część): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602

ZAPISZ.US_222
źródło
6

10 marca 2020 roku działa dla mnie:

brew install php  

Jest to jedyne polecenie dotyczące PHP, które działa. Myślę więc, że polecenia pokazane w ostatnich postach są przestarzałe.

InfiniteRoads
źródło
1
24 marca 2020 potwierdzono
Frank Leal
Potwierdzono 26 marca 2020 r.
Muhammad Ali
7 kwietnia Zgodny
PSN
14 kwietnia 2021 r. Potwierdzony z przyszłości.
Pandem1c
4

Miałem problemy z dowiązaniem symbolicznym Python podczas brew install php.

/usr/local/Frameworks nie istniało, więc musiałem go stworzyć: sudo mkdir /usr/local/Frameworks

cd /usr/local/

Potem musiałem to zmienić: sudo chown -R myuser:admin Frameworks

Oparłem ustawienia uprawnień na pozostałych folderach w /usr/local.

Wtedy mógłbym biec brew link python. Potem pobiegłem brew install phpponownie i to się zakończyło.

php -v teraz daje mi php 7.3.10, zanim to było php 7.3.18 Myślę, że.

tommyskott
źródło
Proponuję użyć ---> sudo chown -R $ (whoami) bin itp. Obejmują lib sbin share var Framework Framework <---- zamiast ---> sudo chown -R myuser: admin Framework <---
Ben Spi
2

Zamiast wymuszać łączenie, możesz również rozwiązać problem w MacOS Catalina

dodając ścieżkę binarną php do swojego profilu bash, np .:

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
źródło
2

Jeśli nie potrzebujesz ext-zip(np. Chcesz tylko wykonać szybką poprawkę), możesz użyć --ignore-platform-reqsopcji, aby zignorować wymagania:

$ composer update --ignore-platform-reqs
bschen
źródło
0

W moim przypadku musiałem po prostu

brew link --overwrite php
João Felipe Marques Ribeiro
źródło