Kesalahan PHP: "Ekstensi zip dan perintah unzip keduanya hilang, dilewati."


144

Ketika saya menjalankan composer updatesaya mendapatkan pesan kesalahan ini:

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

Apa yang harus saya lakukan untuk mengaktifkan perintah zip dan unzip sehingga komposer dapat mengunduh dependensi?


Penanganan Masalah: Gunakan composer update --prefer-source Saya memiliki masalah ini ketika mencoba untuk composer updatephpspec. Failed to download symfony/polyfill-ctype from dist: The zip extension and unzip command are both missing, skipping. Saya menggunakan Mac dan memiliki masalah dalam membuat Homebrew bekerja untuk menginstal ekstensi php. Jadi, perbaikan cepat saya adalah untuk memaksa composer tidak perlu menggunakan zip dengan menambahkan opsi --prefer-source. Ini berarti mengunduh repo daripada paket zip. Bukan solusi jangka panjang tapi berguna untuk diketahui.
John Walker

Jawaban:


311

Tergantung pada rasa versi Linux dan PHP Anda, ini dapat bervariasi.

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

Ini adalah pertanyaan yang sangat umum ditanyakan, Anda akan dapat menemukan informasi yang lebih berguna di ether dengan mencari <distro> php <version> zip extension.


48
Untuk Ubuntu apt-get install php-zipsudah cukup
Olaf Dietsche

1
@OlafDietsche Bagaimana Anda tahu / menentukan kapan menginstal php[version]-packagevs php-packageuntuk paket yang diberikan? Ingin tahu karena saya biasanya hanya pergi dengan php[version]-packageversi, tapi mungkin itu tidak optimal ...
elbowlobstercowstand

@elbowlobstercowstand php-<package>adalah versi default. Paket-paket ini hanya tergantung pada versi terbaru. Jika Anda memerlukan versi tertentu (biasanya lebih lama), Anda menginstal php<version>-<package>.
Olaf Dietsche

Ini juga berfungsi untuk # yum install zip unzip php7.2-zip(pada CentOS 7)
Pathros

1
Orang-orang terus memberikan instruksi untuk menginstal php-zip serta zip / unzip. Tidak masuk akal bahwa ia membutuhkan keduanya.
jgmjgm

45

Untuk server dengan PHP 5.6

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

1
Anda adalah penyelamat hidup, teman saya.
Haring10

1
Bekerja untukku. Terima kasih
umarbilal

23

Untuk Debian Jessie (yang merupakan default saat ini untuk gambar PHP di Docker Hub):

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

Anda dapat menghilangkan --ya, tetapi berguna saat Anda menjalankannya di Dockerfile.


terima kasih sudah berbagi Peter, menyelamatkan saya beberapa waktu mencari versi yang tepat dari php-zip: D
thaerlabs

23

Untuk distro Ubuntu yang lebih lama yaitu 16.04, 14.04, 12.04 dll

sudo apt-get install zip unzip php7.0-zip

2
termasuk 16,04
lampu

15

Saya punya PHP7.2 di server Ubuntu 16.04 dan itu memecahkan masalah saya:

sudo apt-get install zip unzip php-zip

Memperbarui

Mencoba ini untuk Ubuntu 18.04 dan bekerja dengan baik.


7

Saya Menggunakan Ubuntu dan dengan perintah berikut berfungsi

apt-get install --yes zip unzip


5

Bukan untuk memperjelas titik, tetapi jika Anda bekerja di Dockerfile, Anda akan menyelesaikan masalah khusus ini dengan Komposer dengan menginstal unziputilitas. Di bawah ini adalah contoh menggunakan gambar PHP resmi untuk menginstal unzipdan zipekstensi PHP untuk ukuran yang baik.

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

Ini adalah masalah GitHub yang membantu di mana hal di atas diangkat dengan penuh cinta.


4

Jika Anda menggunakan Ubuntu dan PHP 7.2 , gunakan ini ...

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

3

Saya mendapatkan kesalahan ini ketika saya menginstal Laravel 5.5 pada server cloud digitalocean saya (Ubuntu 18.04 dan PHP 7.2) dan perintah berikut memperbaikinya.

sudo apt install zip unzip php7.2-zip


2

Pada buruh pelabuhan dengan gambar php:7.2-apachesaya hanya perlu zip dan unzip. Tidak perlu untuk php-zip:

apt-get install zip unzip

atau Dockerfile

RUN ["apt-get", "update"]
RUN ["apt-get", "install", "-y", "zip"]
RUN ["apt-get", "install", "-y", "unzip"]

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.