instalar ext-zip para Mac


55

Estou tentando executar composer updatee recebo os seguintes erros:

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

ao correr composer update

Da noite para o dia, cometi o erro da minha vida e permiti que o meu Mac atualizasse automaticamente o SO, por isso estou no macOS Catalina agora.

Eu tentei adicionar

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

para o meu compositer.json..mas não está baixando essa extensão.


11
Esse erro significa apenas que seu PHP não possui a php-zipextensão instalada.
— Latheesan

Tendo o mesmo problema, phpinfo diz que ele está instalado ... muito estranho ... graças a Apple ...
— Jamie Robinson

@JamieRobinson me avise se você encontrou uma solução, por favor!
— Abdul

@Abdul melhor que eu tenho até agora é usar o "compositor instalar --ignore-Platform-reqs" ... não é uma solução, mas fica em torno do problema no curto prazo
— Jamie Robinson

@ JamieRobinson, para sua informação, alguém respondeu com algo que funcionou para mim.
— Abdul

Respostas:


129

Eu tive o mesmo problema depois de atualizar meu Mac para Catalina. Aqui está o que funcionou para mim.

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

Em seguida, recarregue seu console.

Ele instalará o php 7.3.10 com o módulo zip. Você pode usar php -v para verificar a versão e php -m para os módulos.


Muito obrigado! que funcionou como um encanto!
— Abdul

2
@Aldranor parece que isso quase funciona, executar uma instalação de fermentação parece um bom plano. No entanto, agora obtendo "Erro: não foi possível vincular o link sbin / php-fpm" "/ usr / local / sbin não é gravável." ... o brew também não executa o sudo ... alguma idéia?
— Jamie Robinson

8
Finalmente consertei! A execução "brew doctor" diz que esta pasta não existe e não é gravável e fornece os comandos a serem executados. Executar esses comandos, execute o comando link novamente, recarregar o console, tudo volta ao normal :)
— Jamie Robinson

8
use 'brew link --force php@7.3' se você vir este aviso "php@7.3 é apenas barril e deve estar vinculado a --force" #
— leeCoder

3
Isso funcionou, mas somente depois que adicionei: export PATH="/usr/local/opt/php@7.3/bin:$PATH" export PATH="/usr/local/opt/php@7.3/sbin:$PATH"ao meu .zshrc
— Loosie94 30/01

14

O comando a seguir corrigiu o problema no macOS Catalina

brew link php@7.3 --force

6

Se o link brew não estiver funcionando para você, verifique sua versão do php instalada por:

ls /usr/local/opt/php*

Aqui, você verá uma versão como tal:

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

Deve fornecer uma saída como:

/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

Agora você só precisa vincular isso ao seu $ PATH, o que pode ser feito como:

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

Nota: Estou usando .zshrc porque essa é a minha configuração do terminal. Se o seu é bash, use de acordo.

Você pode verificar qual versão do php agora está vinculada ao seu MacOS executando:

which php

Isso deve fornecer uma saída de:

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

É isso aí. Agora, se você tentar a atualização do compositor, ela não deverá fornecer o problema de extensão.

Fonte (parte dele): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602


6

Em 10 de março de 2020, ele funciona para mim:

brew install php  

É o único comando sobre PHP que funciona. Então, acho que os comandos mostrados nas últimas postagens estão obsoletos.


11
24 de março de 2020 confirmado
— Frank Leal

26 de março de 2020 confirmado.
— Muhammad Ali

7 de abril conforme
— PSN

14 de abril de 2021. Confirmado no futuro.
— Pandem1c 15/04

4

Eu tive problemas com o symlink do python durante o brew install php.

/usr/local/Frameworks não existia, então eu tive que criá-lo: sudo mkdir /usr/local/Frameworks

cd /usr/local/

Então eu tive que chown: sudo chown -R myuser:admin Frameworks

Baseei as configurações de permissão no restante das pastas /usr/local.

Então eu poderia correr brew link python. Então eu corri brew install phpnovamente e foi concluído.

php -v agora me dá o php 7.3.10, antes do php 7.3.18, eu acho.


Eu proporia usar ---> sudo chown -R $ (whoami) bin etc, incluindo lib sbin share var Frameworks <---- em vez de ---> sudo chown -R myuser: admin Frameworks <---
— Ben Spi

2

Em vez de vincular à força, você também pode corrigir o problema no MacOS Catalina

adicionando o caminho binário php ao seu perfil do bash, por exemplo:

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

Se você não precisar ext-zip(por exemplo, apenas deseja fazer uma correção rápida), pode usar a --ignore-platform-reqsopção para ignorar os requisitos:

$ composer update --ignore-platform-reqs

1

Isso funcionou para mim

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

Espero que ajude


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.