PHP त्रुटि: "ज़िप एक्सटेंशन और अनज़िप कमांड दोनों गायब हैं, लंघन।"


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

ज़िप और अनज़िप कमांड को सक्षम करने के लिए मुझे क्या करने की आवश्यकता है ताकि संगीतकार निर्भरता डाउनलोड कर सके?


वर्कअराउंड: का उपयोग करें composer update --prefer-source जब मैं composer updatephpspec की कोशिश कर रहा था इस मुद्दे था । Failed to download symfony/polyfill-ctype from dist: The zip extension and unzip command are both missing, skipping. मैं एक मैक पर हूँ और होमब्रेव को php एक्सटेंशन स्थापित करने के लिए काम करने में समस्याएँ थीं। इसलिए, मेरा त्वरित समाधान था कि - theferfer-source विकल्प को जोड़कर ज़िप का उपयोग करने की आवश्यकता composer नहीं है। इसका मतलब है कि यह ज़िपित पैकेज के बजाय रेपो डाउनलोड करता है। दीर्घकालिक समाधान नहीं, लेकिन जानना आसान है।
जॉन वॉकर

जवाबों:


311

लिनक्स और पीएचपी संस्करण के आपके स्वाद के आधार पर ये भिन्न हो सकते हैं।

(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लिए पर्याप्त है
ओलाफ डाइटचेस

1
@OlafDietsche आपको किसी भी पैकेज के लिए php[version]-packageबनाम स्थापित करने के php-packageलिए कैसे पता / निर्धारित करना है ? जानना पसंद करेंगे क्योंकि मैं आमतौर पर सिर्फ php[version]-packageसंस्करण के साथ जाता हूं , लेकिन शायद यह इष्टतम नहीं है ...
elbowlobstercowstand

@elbowlobstercowstand php-<package>डिफ़ॉल्ट संस्करण है। ये पैकेज अभी हालिया संस्करण पर निर्भर हैं। यदि आपको कुछ विशिष्ट (आमतौर पर पुराने) संस्करण की आवश्यकता है, तो आप इंस्टॉल करते हैं php<version>-<package>
ओलाफ डायटशे

यह # yum install zip unzip php7.2-zip(CentOS 7 पर) के लिए भी काम करता है
Pathros

1
लोग php-zip के साथ-साथ zip / unzip को इंस्टाल करने के निर्देश देते रहते हैं। यह कोई मतलब नहीं है कि यह दोनों की जरूरत है।
jgmjgm


23

डेबियन जेसी के लिए (जो डॉकर हब पर PHP की छवि के लिए वर्तमान डिफ़ॉल्ट है):

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

आप --yes को छोड़ सकते हैं, लेकिन यह उपयोगी है जब आप RUN-ing इसे Dockerfile में करते हैं।


पीटर को साझा करने के लिए धन्यवाद, मुझे कुछ समय के लिए सही संस्करण की तलाश में बचा लिया php-zip: D
thaerlabs


15

मेरे पास एक Ubuntu 16.04 सर्वर पर PHP7.2 था और इसने मेरी समस्या हल कर दी:

sudo apt-get install zip unzip php-zip

अपडेट करें

इसके लिए Ubuntu 18.04 की कोशिश की और साथ ही काम किया।


7

मैं Ubuntu का उपयोग कर रहा हूँ और निम्नलिखित कमांड के साथ काम किया है

apt-get install --yes zip unzip


5

बिंदु को विस्तृत करने के लिए नहीं, लेकिन यदि आप इसमें काम कर रहे हैं, तो आप उपयोगिता Dockerfileको स्थापित करके इस विशेष मुद्दे को संगीतकार के साथ हल करेंगे 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 मुद्दा है जहां ऊपर से प्यार से उठाया गया है।


4

यदि आप Ubuntu और PHP 7.2 का उपयोग कर रहे हैं , तो इसका उपयोग करें ...

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

3

मुझे यह त्रुटि तब हुई जब मैंने अपने डिजिटल क्लाउड सर्वर (उबंटू 18.04 और PHP 7.2) पर लारवेल 5.5 स्थापित किया और निम्नलिखित कमांड ने इसे ठीक कर दिया।

sudo apt install zip unzip php7.2-zip


2

छवि के साथ काम करने वाले पर php:7.2-apacheमुझे सिर्फ ज़िप और अनजिप की जरूरत थी। Php-zip की कोई आवश्यकता नहीं:

apt-get install zip unzip

या डॉकरफाइल

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

1

वास्तव में संगीतकार आजकल zipकमांड लाइन कमांड के बिना काम करने लगता है , इसलिए स्थापित php-zipकरना पर्याप्त होना चाहिए --- लेकिन यह एक चेतावनी प्रदर्शित करेगा:

चूंकि कोई 'अनज़िप' कमांड स्थापित नहीं है, ज़िप फाइल को PHP जिप एक्सटेंशन के इस्तेमाल से अनपैक किया जा रहा है। इससे भ्रष्ट अभिलेखागार की अमान्य रिपोर्ट हो सकती है। 'अनज़िप' को स्थापित करने से इनकी मरम्मत हो सकती है।

यह भी देखें कि क्या php-zip का उपयोग करने में कोई समस्या है (संगीतकार इसके बारे में चेतावनी देता है)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.