Не удается установить установщик laravel через композитор


120

Я пытаюсь установить установщик laravel с помощью composer на свой компьютер с Ubuntu, но во время установки получаю эту ошибку. `Ваши требования не могут быть решены в устанавливаемом наборе пакетов.

  Problem 1
    - laravel/installer v1.4.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - laravel/installer v1.4.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for laravel/installer ^1.4 -> satisfiable by laravel/installer[v1.4.0, v1.4.1].

  To enable extensions, verify that they are enabled in those .ini files:
    - /etc/php/7.0/cli/php.ini
    - /etc/php/7.0/cli/conf.d/10-opcache.ini
    - /etc/php/7.0/cli/conf.d/10-pdo.ini
    - /etc/php/7.0/cli/conf.d/20-calendar.ini
    - /etc/php/7.0/cli/conf.d/20-ctype.ini
    - /etc/php/7.0/cli/conf.d/20-exif.ini
    - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.0/cli/conf.d/20-ftp.ini
    - /etc/php/7.0/cli/conf.d/20-gettext.ini
    - /etc/php/7.0/cli/conf.d/20-iconv.ini
    - /etc/php/7.0/cli/conf.d/20-json.ini
    - /etc/php/7.0/cli/conf.d/20-phar.ini
    - /etc/php/7.0/cli/conf.d/20-posix.ini
    - /etc/php/7.0/cli/conf.d/20-readline.ini
    - /etc/php/7.0/cli/conf.d/20-shmop.ini
    - /etc/php/7.0/cli/conf.d/20-sockets.ini
    - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
`

Ошибка появляется, тогда я использую этот комментарий:

composer global require "laravel/installer"

Ответы:


285

В нем говорится, что требуется расширение zip

laravel / installer v1.4.0 требует ext-zip ...

Установить с помощью (для установки версии по умолчанию):

sudo apt install php-zip

Или, если вы используете определенную версию PHP:

# For php v7.0
sudo apt-get install php7.0-zip

# For php v7.1
sudo apt-get install php7.1-zip

# For php v7.2
sudo apt-get install php7.2-zip

# For php v7.3
sudo apt-get install php7.3-zip

# For php v7.4
sudo apt-get install php7.4-zip

1
Работает отлично, но разве это не должно быть в установке композитора? Это диспетчер зависимостей ... без зависимости. Может быть, Cannonical пропустил включение.
Тайлер Кристиан

2
@TylerChristian, установка композитора управляет зависимостями PHP, php7.0-zip - это системный пакет. Композитор не может решить ее. Теоретически можно добавить ловушку, которая также устанавливает системный пакет, но для этого потребуется доступ sudo, что ДЕЙСТВИТЕЛЬНО плохая практика.
Alex

4
requires ext-zip- довольно бесполезное сообщение. Должен сказать requires php-zip or phpX.X-zipпо крайней мере.
Генри

1
для пользователей Mac OS используйте Homebrew. Вам не нужно запускать команды brew от имени root. пример: brew install php7.0-zip
Хосни Бен

32

ДЛЯ ПОЛЬЗОВАТЕЛЕЙ MAC с CATALINA

Сначала установите homebrew. Тогда скажи

brew install php@7.3
brew link php@7.3

перезапустите консоль и запустите установщик laravel


Вопрос касается Ubuntu, а не Mac.
Мартейн Питерс

17
Да, но это полезно другим. Я на Mac и нашел это с помощью поиска Google. Этот ответ не будет лучшим ответом для OP, но он определенно полезен для других.
DavidG

Пожалуйста, добавьте дополнительные пояснения к своему ответу - как эта команда решает данную проблему? Есть ли проблема в простой установке данного расширения без предварительной установки других программ?
Нико Хаасе,

21

На centos 7 я использовал:

yum install php-pecl-zip

потому что ни одно другое решение не помогло мне.


Вопрос касается Ubuntu, а не CentOS.
Мартейн Питерс

Это именно то, что я искал, спасибо. yum install php-zip не работает на CentOS 7.
GTS Joe


6

Если вы столкнулись с этой проблемой в macOS Catalina , я рекомендую следующие шаги:

  1. Установите Homebrew (если вы еще этого не сделали): перейдите на brew.sh или просто выполните эту команду:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  2. Бегать brew install php@7.3

  3. Обновите переменную $ PATH, чтобы включить недавно установленную версию php:

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc

echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc

  1. Перезагрузите скрипт настроек оболочки $ source ~/.zshrcилиsource ~/.bashrc

  2. Наконец, установите laravel: composer global require laravel/installer


1
Перед шагом 4 откройте новое окно терминала, иначе новый $ PATH будет недоступен.
user1771561

Вопрос касается Ubuntu, а не Mac.
Мартейн Питерс

4

Потому что Ubuntu 16.04я использовал эту команду, PHP7.2и она сработала для меня.

sudo apt-get install php7.2-zip


3
V=`php -v | sed -e '/^PHP/!d' -e 's/.* \([0-9]\+\.[0-9]\+\).*$/\1/'` \
sudo apt-get install php$V-zip

1
Добавьте несколько комментариев, чтобы объяснить, как ваш код отвечает на вопрос, чтобы улучшить этот ответ.
Эрик


2

чтобы узнать вашу версию php

php -v 

для php 7.3.0

sudo apt-get install php7.3-zip

Я получаю эту ошибку E: Не удалось найти пакет php7.3-zip E: Не удалось найти ни один пакет с помощью glob 'php7.3-zip' E: Не удалось найти ни один пакет с помощью регулярного выражения 'php7.3-zip '
мак


1

Я использую WSL с версией ubuntu 16.04 LTS с php 7.3 и laravel 5.7

sudo apt-get install php7.3-zip

Работать на меня


1

Расширение zip отсутствует. Вы можете избежать этой ошибки, просто выполнив команду ниже. По умолчанию будет использоваться версия.

sudo apt-get install php-zip

Если вам нужна какая-то конкретная версия, вам нужно указать конкретную версию вашего php. Предположим, мне нужно установить Xверсию php-zip, тогда команда будет.

sudo apt-get install phpX-zip  

Замените Xнужной версией. В моем случае это X = 7.3


1

Для пользователей macOs вместо этого можно использовать Homebrew:

# For php v7.0
brew install php@7.0

# For php v7.1
brew install php@7.1

# For php v7.2
brew install php@7.2

# For php v7.3
brew install php@7.3

# For php v7.4
brew install php@7.4

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