instal ext-zip untuk Mac

55

Saya mencoba menjalankan composer updatedan saya mendapatkan kesalahan berikut:

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

saat berlari composer update

Semalam saya telah membuat kesalahan dalam hidup saya dan mengizinkan Mac saya untuk memperbarui OS secara otomatis, jadi saya sekarang berada di macOS Catalina.

Saya sudah mencoba menambahkan

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

ke composer.json..tapi tidak mengunduh ekstensi itu.

Abdul
sumber
1
Kesalahan itu hanya berarti PHP Anda tidak php-zipmenginstal ekstensi.
Latheesan
Memiliki masalah yang sama, phpinfo mengatakan bahwa itu diinstal ... sangat aneh ... terima kasih Apple ...
Jamie Robinson
@JamieRobinson, beri tahu saya jika Anda menemukan perbaikan!
Abdul
@Abdul yang terbaik yang saya dapat sejauh ini adalah menggunakan "komposer instal --ignore-platform-reqs" ... ini bukan solusi tetapi bisa menyelesaikan masalah dalam jangka pendek
Jamie Robinson
@JamieRobinson untuk informasi Anda, seseorang menjawab dengan sesuatu yang bekerja untuk saya.
Abdul

Jawaban:

129

Saya memiliki masalah yang sama setelah memperbarui Mac saya ke Catalina. Inilah yang bekerja untuk saya.

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

Kemudian muat ulang konsol Anda.

Ini akan menginstal php 7.3.10 dengan modul zip. Anda dapat menggunakan php -v untuk memeriksa versi, dan php -m untuk modul.

Aldranor
sumber
Terima kasih banyak! itu bekerja seperti pesona!
Abdul
2
@Aldranor merasa ini hampir berhasil, menjalankan brew install sepertinya rencana yang bagus. Namun, sekarang mendapatkan "Kesalahan: Tidak dapat symlink sbin / php-fpm" "/ usr / local / sbin tidak dapat ditulisi." ... minuman tidak akan menjalankan sudo juga ... ada ide?
Jamie Robinson
8
Akhirnya perbaiki! Menjalankan "brew doctor" mengatakan bahwa folder ini tidak ada dan tidak dapat ditulis, dan memberi Anda perintah untuk menjalankan. Jalankan perintah itu, jalankan perintah tautan lagi, muat ulang konsol, semuanya kembali normal :)
Jamie Robinson
8
gunakan 'brew link --force [email protected]' jika Anda melihat peringatan ini "[email protected] hanya tong dan harus dikaitkan dengan --force"
leeCoder
3
Ini berhasil, tetapi hanya setelah saya menambahkan: export PATH="/usr/local/opt/[email protected]/bin:$PATH" export PATH="/usr/local/opt/[email protected]/sbin:$PATH"ke .zshrc
Loosie94
14

Perintah berikut memperbaiki masalah pada macOS Catalina

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

Jika brew link tidak berfungsi untuk Anda, periksa versi php Anda diinstal oleh:

ls /usr/local/opt/php*

Di sini, Anda akan melihat versi seperti itu:

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

Seharusnya memberi Anda output seperti:

/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

Sekarang Anda hanya perlu menautkannya ke $ PATH Anda yang dapat dilakukan sebagai:

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

Catatan: Saya menggunakan .zshrc karena itu adalah pengaturan terminal saya. Jika milik Anda adalah bash, gunakan yang sesuai.

Anda dapat memeriksa versi php mana yang sekarang ditautkan ke MacOS Anda dengan menjalankan:

which php

Ini akan memberi Anda output dari:

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

Itu dia. Sekarang jika Anda mencoba pembaruan komposer, itu tidak akan memberi Anda masalah ekstensi.

Sumber (bagian dari itu): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602

SAVE.US_222
sumber
6

Pada 10 Maret 2020, itu berfungsi untuk saya:

brew install php  

Ini adalah satu-satunya perintah tentang PHP yang berfungsi. Jadi, saya berpikir bahwa perintah yang ditunjukkan pada posting terakhir sudah usang.

InfiniteRoads
sumber
1
24 Maret 2020 dikonfirmasi
Frank Leal
26 Maret 2020 dikonfirmasi.
Muhammad Ali
7 April Diselaraskan
PSN
14 April 2021. Dikonfirmasi dari masa depan.
Pandem1c
4

Saya punya masalah dengan symlink python selama brew install php.

/usr/local/Frameworks tidak ada jadi saya harus membuatnya: sudo mkdir /usr/local/Frameworks

cd /usr/local/

Kemudian saya harus mengunyahnya: sudo chown -R myuser:admin Frameworks

Saya mendasarkan pengaturan izin pada sisa folder di /usr/local.

Lalu aku bisa lari brew link python. Lalu aku berlari brew install phplagi dan selesai.

php -v sekarang memberi saya php 7.3.10, sebelum itu php 7.3.18 saya pikir.

tommyskott
sumber
Saya akan mengusulkan untuk menggunakan ---> sudo chown -R $ (whoami) bin dll termasuk lib sbin share var Frameworks <---- bukannya ---> sudo chown -R myuser: admin Frameworks <---
Ben Spi
2

Alih-alih memaksa menghubungkan Anda juga dapat memperbaiki masalah di MacOS Catalina

dengan menambahkan jalur biner php ke profil bash Anda mis:

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

Jika Anda tidak perlu ext-zip(misalnya Anda hanya ingin melakukan perbaikan cepat), Anda dapat menggunakan --ignore-platform-reqsopsi untuk mengabaikan persyaratan:

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

Dalam kasus saya, saya harus sederhana

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