PHP 오류 : "zip 확장 및 unzip 명령이 모두 생략되어 건너 뜁니다."


144

실행할 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 명령을 사용하려면 어떻게해야합니까?


해결 방법 : 사용 phpspec을 composer update --prefer-source 시도 할 composer update때이 문제가 발생 했습니다. Failed to download symfony/polyfill-ctype from dist: The zip extension and unzip command are both missing, skipping. 저는 Mac에 있는데 Homebrew에서 PHP 확장 프로그램을 설치하는 데 문제가 있습니다. 따라서 빠른 수정은 --prefer-source 옵션을 추가하여 zip을 사용 composer 하지 않아도되도록하는 것이 었습니다. 즉, 압축 패키지 대신 저장소를 다운로드합니다. 장기적인 해결책은 아니지만 알기 편리합니다.
John Walker

답변:


311

Linux 및 PHP 버전에 따라 다를 수 있습니다.

(sudo) yum install zip unzip php-zip
(sudo) apt install zip unzip php-zip

이것은 매우 일반적으로 묻는 질문이며을 검색하여 에테르에서 더 유용한 정보를 찾을 수 있습니다 <distro> php <version> zip extension.


48
우분투의 경우 apt-get install php-zip충분합니다
올라프 DIETSCHE

1
설치할 때 @OlafDietsche 어떻게 당신이 알고 / 결정 php[version]-packagephp-package특정 패키지? 내가 보통 php[version]-package버전 과 함께 갈 때 알고 싶지만 아마도 그것은 최적이 아닙니다…
elbowlobstercowstand

@elbowlobstercowstand php-<package>가 기본 버전입니다. 이 패키지는 최신 버전에 따라 다릅니다. 특정 버전 (일반적으로 이전 버전)이 필요한 경우를 설치하십시오 php<version>-<package>.
올라프 Dietsche

그것은 또한 작동합니다 # yum install zip unzip php7.2-zip(CentOS 7에서)
Pathros

1
사람들은 zip / unzip뿐만 아니라 php-zip 설치 지침을 계속 제공합니다. 둘 다 필요하다는 것은 말이되지 않습니다.
jgmjgm 17 년

45

PHP 5.6이 설치된 서버의 경우

sudo apt-get install zip unzip php5.6-zip

1
당신은 생명의 은인입니다.
Haring10

1
나를 위해 일했다. 감사합니다
umarbilal

23

Debian Jessie (Docker Hub의 PHP 이미지에 대한 현재 기본값) :

apt-get install --yes zip unzip php-pclzip

--yes를 생략 할 수 있지만 Dockerfile에서 실행할 때 유용합니다.


덕분에 피터을 공유하기 위해, 오른쪽 버전을 찾고 좀 시간을 절약 php-zipD :
thaerlabs


16

Ubuntu 16.04 서버에서 PHP7.2를 사용하여 문제를 해결했습니다.

sudo apt-get install zip unzip php-zip

최신 정보

우분투 18.04에서 이것을 시도하고 또한 효과가있었습니다.



5

요점을 설명하지는 않지만에서 작업중인 경우 유틸리티 Dockerfile를 설치하여 Composer의 특정 문제를 해결할 수 있습니다 unzip. 아래는 공식 PHP 이미지 를 사용하여 설치 unzip하고 zipPHP 확장을 사용하여 좋은 예입니다.

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 문제 입니다.


4

우분투와 PHP 7.2 를 사용 한다면 이것을 사용하십시오 ...

sudo apt-get update
sudo apt-get install zip unzip php7.2-zip

3

내 디지털 오션 클라우드 서버 (Ubuntu 18.04 및 PHP 7.2)에 Laravel 5.5를 설치하면 다음 오류가 발생했습니다.

sudo apt install zip unzip php7.2-zip


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

1

실제로 오늘날 작곡가는 zip명령 행 명령 없이 작동하는 것처럼 보이 므로 설치 php-zip가 충분해야합니다. 그러나 경고가 표시됩니다.

'unzip'명령이 설치되어 있지 않으므로 zip 파일은 PHP zip 확장명을 사용하여 압축을 풉니 다. 이로 인해 손상된 아카이브에 대한 잘못된 보고서가 발생할 수 있습니다. 'unzip'을 설치하면 문제가 해결 될 수 있습니다.

참조 PHP는 지퍼를 사용에 문제가 (작곡가 그것에 대해 경고)이 있습니까

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.