Когда я запускаю, composer update
я получаю это сообщение об ошибке:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Failed to download psr/log from dist: The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /etc/php/7.0/cli/php.ini
Now trying to download from source
Что мне нужно сделать, чтобы включить команды zip и unzip, чтобы композитор мог загружать зависимости?
php
composer-php
b85411
источник
источник
composer update --prefer-source
меня возникла эта проблема при попыткеcomposer update
phpspec.Failed to download symfony/polyfill-ctype from dist: The zip extension and unzip command are both missing, skipping.
Я использую Mac, и у меня возникли проблемы с тем, чтобы Homebrew работал с установкой расширений php. Итак, мое быстрое решение заключалось в том, чтобы заставитьcomposer
отказаться от использования zip, добавив параметр --prefer-source. Это означает, что он загружает репо вместо заархивированного пакета. Не долгосрочное решение, но полезно знать.Ответы:
В зависимости от вашего вкуса Linux и версии PHP они могут отличаться.
Это очень часто задаваемый вопрос, вы сможете найти более полезную информацию в эфире, выполнив поиск
<distro> php <version> zip extension
.источник
apt-get install php-zip
достаточноphp[version]-package
vsphp-package
для любого данного пакета? Хотел бы знать, так как я обычно просто использую этуphp[version]-package
версию, но, возможно, это не оптимально…php-<package>
- версия по умолчанию. Эти пакеты зависят только от самой последней версии. Если вам нужна какая-то конкретная (обычно более старая) версия, вы устанавливаетеphp<version>-<package>
.As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension. This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost. Installing 'unzip' may remediate them.
Так и должно бытьRUN … apt-get install -yqq … zlib1g-dev libzip-dev unzip && docker-php-ext-install zip
Для серверов с PHP 5.6
sudo apt-get install zip unzip php5.6-zip
источник
Для Debian Jessie (который является текущим значением по умолчанию для образа PHP в Docker Hub):
Вы можете опустить --yes, но это полезно, когда вы запускаете его в Dockerfile.
источник
php-zip
: DДля более старых дистрибутивов Ubuntu, т.е. 16.04, 14.04, 12.04 и т. Д.
sudo apt-get install zip unzip php7.0-zip
источник
У меня был PHP7.2 на сервере Ubuntu 16.04, и он решил мою проблему:
sudo apt-get install zip unzip php-zip
Обновить
Пробовал это для Ubuntu 18.04 и тоже работал.
источник
Не вдаваясь в подробности, но если вы работаете в a
Dockerfile
, вы могли бы решить эту конкретную проблему с помощью Composer, установивunzip
утилиту. Ниже приведен пример использования официального образа PHP для установкиunzip
иzip
расширения PHP для удобства.FROM php:7.4-apache # Install Composer COPY --from=composer /usr/bin/composer /usr/bin/composer # Install unzip utility and libs needed by zip PHP extension RUN apt-get update && apt-get install -y \ zlib1g-dev \ libzip-dev \ unzip RUN docker-php-ext-install zip
Это полезная проблема на GitHub, из которой с любовью взято все вышесказанное.
источник
Я использую Ubuntu, и сработала следующая команда
apt-get install --yes zip unzip
источник
Если вы используете Ubuntu и PHP 7.2 , используйте это ...
sudo apt-get update sudo apt-get install zip unzip php7.2-zip
источник
Я получил эту ошибку, когда установил Laravel 5.5 на свой облачный сервер digitalocean (Ubuntu 18.04 и PHP 7.2), и следующая команда исправила ее.
источник
В докере с изображением
php:7.2-apache
мне просто нужно было заархивировать и разархивировать. Не нужен php-zip:apt-get install zip unzip
или Dockerfile
RUN ["apt-get", "update"] RUN ["apt-get", "install", "-y", "zip"] RUN ["apt-get", "install", "-y", "unzip"]
источник
На самом деле composer в настоящее время, похоже, работает без команды
zip
командной строки, поэтому установкиphp-zip
должно быть достаточно --- НО будет отображаться предупреждение:См. Также Есть ли проблема с использованием php-zip (об этом предупреждает композитор)
источник
Самая короткая команда, чтобы исправить это в Debian и Ubuntu (зависимости будут установлены автоматически):
источник
PHP-ZIP
требуются некоторые зависимости или библиотека, в зависимости от образа, которыйDockerfile
вам нужно сначала установитьисточник