无法通过composer安装包:PHP扩展zip丢失

问题描述 投票:0回答:15

我尝试在 Ubuntu PC 上使用 Composer 安装 laravel 安装程序,但在安装过程中出现此错误。 `您的要求无法解决为一组可安装的软件包。

  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"
php composer-php
15个回答
332
投票

它说需要 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

55
投票

适用于使用 CATALINA 的 MAC 用户

首先,安装自制程序。 然后说

brew install [email protected]
brew link [email protected]

重新启动控制台并运行 laravel 安装程序


23
投票

在centos 7上我使用过:

yum install php-pecl-zip

因为任何其他解决方案都不适合我。


19
投票

对于 PHP7.1 安装这个

sudo apt-get install php7.1-zip

7
投票

如果您在 macOS Catalina 中遇到此问题,我建议您执行以下步骤:

  1. 安装 Homebrew(如果您还没有这样做):前往 brew.sh 或只需运行此命令:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  2. 运行

    brew install [email protected]

  3. 更新您的 $PATH 变量以包含新安装的 php 版本:

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc

echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> ~/.zshrc

  1. 重新加载您的 shell 首选项脚本

    $ source ~/.zshrc
    source ~/.bashrc

  2. 最后,安装laravel:

    composer global require laravel/installer


5
投票

对于

Ubuntu 16.04
,我已使用此命令来
PHP7.2
,它对我有用。

sudo apt-get install php7.2-zip

5
投票

Centos 7 与 PHP7.2:

sudo yum --enablerepo=remi-php72 install php-pecl-zip

3
投票

了解你的php版本

php -v 

适用于 php 7.3.0

sudo apt-get install php7.3-zip

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

2
投票

对于配备 Macports 的 Mac,

# port install php71-zip

2
投票

适用于 Ubuntu 18.04 LTS 中的 PHP 7.2

sudo apt-get install php7.2-zip

像魅力一样工作


2
投票

zip 扩展名丢失,您可以通过简单运行以下命令来避免此错误,默认情况下会采用版本

sudo apt-get install php-zip

如果您需要任何特定版本,您需要提及您的 php 的特定版本,假设我需要安装

X
版本的 php-zip 那么命令将是。

sudo apt-get install phpX-zip  

X
替换为您需要的版本,就我而言,它是
X = 7.3


2
投票

对于 macOS 用户,您可以使用 Homebrew 代替:

# For php v7.0
brew install [email protected]

# For php v7.1
brew install [email protected]

# For php v7.2
brew install [email protected]

# For php v7.3
brew install [email protected]

# For php v7.4
brew install [email protected]

1
投票

我正在将 WSL 与 ubuntu 16.04 LTS 版本以及 php 7.3 和 laravel 5.7 一起使用

sudo apt-get install php7.3-zip

为我工作


0
投票

# for (php:8.2-fpm)

# Install system dependencies and required PHP extensions
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    libzip-dev \
    zip \
    unzip \
    && docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd soap

# other codes...

--progress=plain
选项与
docker-compose build
一起使用可以显着提高您在映像构建过程中调试问题的能力。此选项将输出格式更改为更易于阅读的纯文本格式,并提供有关 Dockerfile 中每个步骤的更详细信息。

用途:

docker-compose build --progress=plain
© www.soinside.com 2019 - 2024. All rights reserved.