cài đặt ext-zip cho Mac


55

Tôi đang cố chạy composer updatevà tôi gặp các lỗi sau:

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

khi chạy composer update

Qua đêm, tôi đã phạm phải sai lầm của cuộc đời mình và cho phép máy Mac của tôi tự động cập nhật HĐH, vì vậy bây giờ tôi đang ở trong macOS Catalina.

Tôi đã thử thêm

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

vào composer.json của tôi..nhưng nó không tải xuống phần mở rộng đó.


1
Lỗi đó chỉ có nghĩa là PHP của bạn chưa php-zipcài đặt tiện ích mở rộng.
Latheesan

Có cùng một vấn đề, phpinfo nói rằng nó được cài đặt ... rất kỳ quặc ... cảm ơn Apple ...
Jamie Robinson

@JamieRobinson làm cho tôi biết nếu bạn đã tìm thấy một sửa chữa xin vui lòng!
Abdul

@Abdul tốt nhất từ ​​trước đến nay tôi đang sử dụng "cài đặt trình soạn thảo - cài đặt nền tảng-reqs" ... đó không phải là một giải pháp nhưng nó đã khắc phục được vấn đề trong thời gian ngắn
Jamie Robinson

@JamieRobinson cho thông tin của bạn, ai đó đã trả lời với một cái gì đó làm việc cho tôi.
Abdul

Câu trả lời:


129

Tôi gặp vấn đề tương tự sau khi cập nhật máy Mac của mình lên Catalina. Đây là những gì làm việc cho tôi.

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

Sau đó tải lại giao diện điều khiển của bạn.

Nó sẽ cài đặt php 7.3.10 với mô-đun zip. Bạn có thể sử dụng php -v để kiểm tra phiên bản và php -m cho các mô-đun.


Cảm ơn bạn rất nhiều! tiếng Anh> Tiếng Việt!
Abdul

2
@Aldranor cảm thấy như điều này gần như hoạt động, chạy một cài đặt bia nghe có vẻ là một kế hoạch tốt. Tuy nhiên, bây giờ nhận được "Lỗi: Không thể symlink sbin / php-fpm" "/ usr / local / sbin không thể ghi được." ... brew sẽ không chạy sudo cả ... có ý tưởng nào không?
Jamie Robinson

8
Cuối cùng đã sửa nó! Chạy "brew Doctor" nói rằng thư mục này không tồn tại và không thể ghi được, và cung cấp cho bạn các lệnh để chạy. Chạy các lệnh đó, chạy lại lệnh liên kết, tải lại bàn điều khiển, tất cả trở lại bình thường :)
Jamie Robinson

8
sử dụng 'brew link --force php@7.3' nếu bạn thấy cảnh báo này "php@7.3 chỉ là keg và phải được liên kết với --force"
leeCoder

3
Điều này đã hoạt động, nhưng chỉ sau khi tôi đã thêm: export PATH="/usr/local/opt/php@7.3/bin:$PATH" export PATH="/usr/local/opt/php@7.3/sbin:$PATH"vào
.zshrc

14

Lệnh sau đã khắc phục sự cố trên macOS Catalina

brew link php@7.3 --force

6

Nếu liên kết brew không hoạt động với bạn, hãy kiểm tra phiên bản php của bạn được cài đặt bởi:

ls /usr/local/opt/php*

Tại đây, bạn sẽ thấy một phiên bản như vậy:

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

Sẽ cung cấp cho bạn một đầu ra như:

/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

Bây giờ bạn chỉ cần liên kết nó với $ PATH của bạn có thể được thực hiện như sau:

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

Lưu ý: Tôi đang sử dụng .zshrc vì đó là thiết lập đầu cuối của tôi. Nếu bạn là bash, sử dụng cho phù hợp.

Bạn có thể kiểm tra phiên bản php nào hiện được liên kết với MacOS của bạn bằng cách chạy:

which php

Điều này sẽ cung cấp cho bạn một đầu ra của:

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

Đó là nó. Bây giờ nếu bạn thử cập nhật trình soạn thảo, nó sẽ không cung cấp cho bạn vấn đề mở rộng.

Nguồn (một phần của nó): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602


6

Vào ngày 10 tháng 3 năm 2020, nó hoạt động với tôi:

brew install php  

Đây là lệnh duy nhất về PHP hoạt động. Vì vậy, tôi nghĩ rằng các lệnh hiển thị trong bài viết cuối cùng không được chấp nhận.


1
Ngày 24 tháng 3 năm 2020 đã được xác nhận
Frank Leal

Ngày 26 tháng 3 năm 2020 đã xác nhận.
Muhammad Ali

Ngày 7 tháng 4 Phù hợp
PSN

Ngày 14 tháng 4 năm 2021. Khẳng định từ tương lai.
Pandem1c

4

Tôi đã có vấn đề với symlink python trong quá trình brew install php.

/usr/local/Frameworks không tồn tại nên tôi phải tạo ra nó: sudo mkdir /usr/local/Frameworks

cd /usr/local/

Sau đó, tôi đã phải chown nó: sudo chown -R myuser:admin Frameworks

Tôi dựa trên các thiết lập quyền trên phần còn lại của các thư mục /usr/local.

Sau đó tôi có thể chạy brew link python. Sau đó tôi chạy brew install phplại và nó đã hoàn thành.

php -v bây giờ cho tôi php 7.3.10, trước khi nó là php 7.3.18 tôi nghĩ vậy.


Tôi sẽ đề xuất sử dụng ---> sudo chown -R $ (whoami) bin, v.v. bao gồm lib sbin share var Frameworks <---- thay vì ---> sudo chown -R myuser: admin Frameworks <---
Ben Spi

2

Thay vì liên kết lực lượng, bạn cũng có thể khắc phục sự cố trong MacOS Catalina

bằng cách thêm đường dẫn nhị phân php vào hồ sơ bash của bạn, vd:

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

Nếu bạn không cần ext-zip(ví dụ: Bạn chỉ muốn thực hiện một số sửa chữa nhanh), bạn có thể sử dụng --ignore-platform-reqstùy chọn để bỏ qua các yêu cầu:

$ composer update --ignore-platform-reqs

1

Điều này làm việc cho tôi

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

Hy vọng nó giúp


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.