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.