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.


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.


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 php@7.3”, jeśli zobaczysz to ostrzeżenie: „php@7.3 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/php@7.3/bin:$PATH" export PATH="/usr/local/opt/php@7.3/sbin:$PATH"do mojego .zshrc
Loosie94

13

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

brew link php@7.3 --force

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/php@7.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.3/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


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.


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.


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/php@7.3/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.3/sbinbin:$PATH"' >> ~/.bash_profile

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

1

To zadziałało dla mnie

brew update brew install php@7.3 brew link php@7.3 brew link php@7.3 --force

Mam nadzieję, że to pomoże


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.