встановити ext-zip для Mac


55

Я намагаюся запустити, composer updateі я отримую такі помилки:

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

при бігу composer update

За ніч я зробив помилку в своєму житті і дозволив моєму Mac автоматично оновлювати ОС, тому я зараз в macOS Catalina.

Я спробував додати

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

до мого composer.json..але це не завантажує це розширення.


1
Ця помилка просто означає, що у вашому PHP не встановлено php-zipрозширення.
Latheesan

Маючи той самий випуск, phpinfo каже, що він встановлений ... дуже дивно ... дякую Apple ...
Джеймі Робінсон

@JamieRobinson, повідомте мене, якщо ви знайшли виправлення, будь ласка!
Абдул

@Abdul найкраще, що у мене поки що, використовується "встановлення композитора --ignore-platform-reqs" ... це не рішення, але це
Джеймі Робінсон

@JamieRobinson для вашої інформації, хтось відповів чимось, що працювало на мене.
Абдул

Відповіді:


128

У мене була та сама проблема після оновлення Mac на Каталіну. Ось що для мене спрацювало.

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

Потім перезавантажте консоль.

Він встановить php 7.3.10 з поштовим модулем. Ви можете використовувати php -v для перевірки версії, а php -m для модулів.


Дуже тобі вдячний! що працювало як шарм!
Абдул

2
@Aldranor відчуваю, що це майже працює, запуск встановлення заварки звучить як хороший план. Однак зараз отримуємо "Помилка: Не вдалося символізувати sbin / php-fpm" "/ usr / local / sbin не можна записати." ... brew також не запустить sudo ... будь-які ідеї?
Джеймі Робінсон

8
Нарешті виправлено! Запуск "варити лікар" говорить, що ця папка не існує і не піддається запису, і дає команди для запуску. Виконайте ці команди, виконайте команду посилання ще раз, перезавантажте консоль, і все повернеться до нормального :)
Джеймі Робінсон

8
використовуйте "заварювати посилання --force php@7.3", якщо ви бачите це попередження "php@7.3 є лише кегом і має бути пов’язане з --force"
leeCoder

3
Це спрацювало, але лише після того, як я додав: export PATH="/usr/local/opt/php@7.3/bin:$PATH" export PATH="/usr/local/opt/php@7.3/sbin:$PATH"до мого .zshrc
Loosie94


6

Якщо посилання на пивоварне не працює для вас, перевірте свою PHP-версію, встановлену:

ls /usr/local/opt/php*

Тут ви побачите версію як таку:

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

Потрібно дати результат, наприклад:

/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

Тепер вам просто потрібно зв’язати це з вашим $ PATH, що можна зробити так:

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

Примітка. Я використовую .zshrc, тому що це моя установка терміналу. Якщо ваш баш, використовуйте відповідно.

Ви можете перевірити, яка версія php тепер пов’язана з вашим MacOS, запустивши:

which php

Це має дати результат:

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

Це воно. Тепер, якщо ви спробуєте оновити композитор, це не повинно надавати вам проблеми з розширенням.

Джерело (його частина): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602


6

10 березня 2020 року для мене це працює:

brew install php  

Це єдина команда про PHP, яка працює. Отже, я думаю, що команди, показані в останніх публікаціях, застаріли.


1
24 березня 2020 року підтверджено
Френк Ліл

26 березня 2020 року підтверджено.
Мухаммед Алі

7 квітня Відповідно
ПСН

14 квітня 2021 р. Підтверджено з майбутнього.
Pandem1c

4

У мене були проблеми з python symlink під час brew install php.

/usr/local/Frameworks не існувало, тому мені довелося його створити: sudo mkdir /usr/local/Frameworks

cd /usr/local/

Тоді мені довелося її подавити: sudo chown -R myuser:admin Frameworks

На основі параметрів дозволу я базувався на решті папок у /usr/local.

Тоді я міг бігати brew link python. Потім я brew install phpзнову побіг і це закінчилося.

php -v тепер дає мені php 7.3.10, раніше це було php 7.3.18 Я думаю.


Я б запропонував використовувати ---> sudo chown -R $ (whoami) бін і т. Д. Включати lib sbin share var Frameworks <---- замість ---> sudo chown -R myuser: адмін рамки <---
Бен спи

2

Замість примусового з'єднання ви також можете виправити проблему в MacOS Catalina

додавши php бінарний шлях до вашого bash профілю, наприклад:

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

Якщо вам це не потрібно ext-zip(наприклад, ви просто хочете зробити швидке виправлення), ви можете скористатися --ignore-platform-reqsопцією, щоб ігнорувати вимоги:

$ composer update --ignore-platform-reqs

1

Це працювало для мене

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

Сподіваюся, це допомагає


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.