установить 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 лучшее, что у меня есть, это использование "composer install --ignore-platform-reqs" ... это не решение, но оно решает проблему в краткосрочной перспективе
Джейми Робинсон,

@JamieRobinson за вашу информацию, кто-то ответил с чем-то, что работает для меня.
Абдул

Ответы:


129

У меня была такая же проблема после обновления моего Mac до Каталины. Вот что сработало для меня.

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

Затем перезагрузите консоль.

Он установит php 7.3.10 с zip-модулем. Вы можете использовать php -v для проверки версии и php -m для модулей.


Спасибо большое! это работает как шарм!
Абдул

2
@Aldranor чувствую, что это почти работает, запуск установки brew звучит как хороший план. Тем не менее, теперь появляется сообщение «Ошибка: не удалось создать символическую ссылку sbin / php-fpm» «/ usr / local / sbin». «... brew также не запускает sudo ... какие-либо идеи?
Джейми Робинсон

8
Наконец-то исправили это! Запуск «brew doctor» говорит, что эта папка не существует и недоступна для записи, и дает вам команды для запуска. Запустите эти команды, снова запустите команду link, перезагрузите консоль, и все вернется в нормальное состояние :)
Джейми Робинсон,

8
используйте «brew link --force php@7.3», если вы видите это предупреждение «php@7.3 только для бочонков и должен быть связан с
--force

3
Это сработало, но только после того, как я добавил: export PATH="/usr/local/opt/php@7.3/bin:$PATH" export PATH="/usr/local/opt/php@7.3/sbin:$PATH"в мой .zshrc
Loosie94


6

Если brew link не работает для вас, проверьте версию 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, потому что это моя настройка терминала. Если у вас bash, используйте соответственно.

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

which php

Это должно дать вам вывод:

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

Вот и все. Теперь, если вы попробуете обновить композитор, он не должен вызывать проблем с расширением.

Источник (часть этого): https://medium.com/@jjdanek/install-php-extensions-on-mac-after-homebrew-acfddd6be602


6

10 марта 2020 года у меня работает:

brew install php  

Это единственная команда в PHP, которая работает. Итак, я думаю, что команды, показанные в последних сообщениях, устарели.


1
24 марта 2020 года подтверждено
Фрэнк Лил

26 марта 2020 г. подтверждено.
Мухаммед Али

7 апреля подтверждено
PSN

14 апреля 2021 года. Подтверждено из будущего.
Pandem1c

4

У меня были проблемы с символической ссылкой Python во время 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) bin и т. Д. Включать lib sbin share var Frameworks <---- вместо ---> sudo chown -R myuser: Admin Frameworks <---
Ben Спи

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.