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.


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.


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 php@7.3' jika Anda melihat peringatan ini "php@7.3 hanya tong dan harus dikaitkan dengan --force"
leeCoder

3
Ini berhasil, tetapi hanya setelah saya menambahkan: export PATH="/usr/local/opt/php@7.3/bin:$PATH" export PATH="/usr/local/opt/php@7.3/sbin:$PATH"ke .zshrc
Loosie94

14

Perintah berikut memperbaiki masalah pada macOS Catalina

brew link php@7.3 --force

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


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.


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.


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

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

1

Ini berhasil untuk saya

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

Semoga ini bisa membantu


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.