घातक त्रुटि: क्लास 'ज़िपआर्चिव' में नहीं मिला


181

मुझे एक समस्या है कि मैं लिनक्स सर्वर पर 'Archive_Zip 0.1.1' स्थापित करता हूं, लेकिन जब मैं जिप फाइल बनाने के लिए स्क्रिप्ट चलाने की कोशिश करता हूं तो यह घातक त्रुटि देता है

घातक त्रुटि: कक्षा में ZipArchiveनहीं मिला ...

जहाँ मैंने कोड डाला है

$zip = new ZipArchive;
var_dump($zip);
$res = $zip->open($filename, ZipArchive::OVERWRITE);
if ($res !== TRUE) {
    echo 'Error: Unable to create zip file';
    exit;
}
if (is_file($src)) {
    $zip->addFile($src);
} else {
    // echo "<br>" . dirname(__FILE__) . $src;//'/install1';
    if (!is_dir($src)) {
         $zip->close();
         @unlink($filename);
         echo 'Error: File not found';
         exit;
    }
    recurse_zip($src, $zip, $path_length);
}
$zip->close();
echo "<br>file name ".$filename;

लेकिन यह वर्ग फ़ाइल नहीं ढूँढता है।

कृपया इसका उपाय बताएं। समस्या के समाधान के लिए मुझे क्या करना चाहिए? मैंने php.iniउस फ़ोल्डर में फ़ाइल भी रखी है जहाँ स्क्रिप्ट है, लेकिन यह काम नहीं करता है।


7
उबंटू उपयोग परsudo apt-get install php7.2-zip
एरिक कोरोलेव

1
@ EricKorolev कि E: Unable to locate package php7.2-zip E: Couldn't find any package by regex 'php7.2-zip'ubuntu 14.04 का उपयोग करते हुए php 7.2 के साथ
मुहम्मद ओमर असलम

1
डेबियन 10 पर, यह बस है apt-get install php-zip
anexl

आप इस पोस्ट को देख सकते हैं: stackoverflow.com/a/60482998/4806585
विशालपार्क

जवाबों:


207

के लिए ZipArchiveवर्ग उपस्थित होना, पीएचपी की जरूरत जिप विस्तार स्थापित किया।

स्थापना निर्देशों (लिनक्स और विंडोज दोनों) के लिए इस पृष्ठ को देखें ।


1
संभवतः मैं यह समझने में सक्षम नहीं हूं कि मैं क्या करता हूं। मैं उन उदाहरणों का उपयोग करता हूं जो अध्ययन के लिए आपके द्वारा प्रदान किए गए स्याही पर दिए गए हैं और स्क्रिप्ट को पूरा करते हैं। यह मेरे पीसी (लोकलहोस्ट) पर ठीक काम कर रहा है और सर्वर में नहीं। कृपया इसके लिए सुझाव दें
पराग चौर

49
Ubuntu सर्वर पर apt-get का उपयोग करsudo apt-get install php7.0-zip
लुडिड

9
सरल उपाय sudo apt-get install php7.0-zip:। फिर, फ़ाइल को संपादित करें /etc/php/7.0/cli/php.ini("डायनेमिक एक्सटेंशन" अनुभाग में, लाइन जोड़ें extension=zip.so)। यह इसे हल करना चाहिए
JonyD

21
डॉकर के लिएdocker-php-ext-install zip
डेविड रिस्किटेल्ली

11
जैसा कि ubuntu सर्वर पर @Luddig द्वारा उल्लेख किया गया है उसके बाद sudo apt-get install php7.0-zipआपको अपाचे सर्वर को फिर से चालू करना होगाsudo systemctl restart apache2
hashmi

82

Amazon ec2 पर Ubuntu + nginx + php7 के साथ, मेरे पास एक ही समस्या थी, इसे उपयोग करके हल किया:

sudo apt-get install php7.0-zip


apt-get install के बाद php7.0-xsl को समस्या मिली ... बस चिंता न करें apt-get install php7.0-zip को हल करने के लिए
bortunac

sudo apt-get install php7.1-zipउबंटू / php7.1 के लिए
नीनो स्कोपैक

यह साथ काम नहीं करता है php 7.2और हमेशा कहता हैE: Unable to locate package php7.2-zip E: Couldn't find any package by regex 'php7.2-zip'
मुहम्मद ओमर असलम

39

Ubuntu डेस्कटॉप पर, मुझे करना था।

sudo apt-get install php5.6-zip

इसने पुस्तकालय स्थापित किया लेकिन मैं अभी भी वही त्रुटि प्राप्त करता रहा, इसलिए मुझे अपाचे का उपयोग करके पुनः आरंभ करना पड़ा:

sudo service apache2 restart

और यह काम किया।


1
रीस्टेकिंग अपाचे ने ऐसा किया, जब @ pekka के समाधान के साथ संयुक्त
gthuo

18

सबसे पहले, दूरस्थ सर्वर के लिए समाधान:

यदि आप cpanel का उपयोग कर रहे हैं, तो आपके पास ज़िप एक्सटेंशन स्थापित हो सकता है लेकिन सक्रिय नहीं होगा। आपको इसे सक्रिय करने की आवश्यकता है। इस मामले के लिए आपको cpanel> अंदर सॉफ्टवेयर अनुभाग> PHP संस्करण पर क्लिक करने की आवश्यकता है । फिर जिप लगाएं और इसे जांचें। अब बचा लो।

आपको इमेज की तरह दिखना चाहिए। यहां छवि विवरण दर्ज करें

पृष्ठ ताज़ा करें। त्रुटि गायब होनी चाहिए।

नोट: यदि आपको नहीं मिला, तो सर्वर प्रदाता से संपर्क करें। वे आपके लिए स्थापित करेंगे।


इसने मेरे लिए काम किया। मैं एक टेम्पलेट बिल्डर का उपयोग कर रहा था और यह निर्यात नहीं करेगा। मैंने जिप चेकबॉक्स, सेव और वॉयला चेक किया। धन्यवाद Kaylan
Hblegg

16

मैं इसे यहां नहीं देख रहा हूं, इसलिए मैं इसे डेबियन / उबंटू में जोड़ना चाहूंगा जो आपको सापेक्ष पैकेज स्थापित करने के बाद एक्सटेंशन को सक्षम करने की आवश्यकता हो सकती है । इसलिए:

sudo apt-get install php-zip
sudo phpenmod zip
sudo service apache2 restart

2
php7.0-zipPHP 7.
एंथनीबी

APACHE रेस्टार्ट भूल जाओ!
zzapper

1
PHP 7.1 के लिए php7.1-zip, PHP 7.2 के लिए php7.2-zip स्थापित करें।
नव

6

यदि आपके पास WHM उपलब्ध है तो यह आसान है।

WHM में लॉग इन करें ।

पर जाएं EasyApache के तहत 4 (या जो भी संस्करण यू है) सॉफ्टवेयर टैब।

वर्तमान में स्थापित संकुल के अंतर्गत अनुकूलित करें पर क्लिक करें

खोज प्रकार " ज़िप " ( बिना उद्धरण के) में PHP एक्सटेंशन पर जाएं ),

आपको 3 मॉड्यूल देखने चाहिए

उन सभी की जाँच करें,

प्रक्रिया को पूरा करने के लिए कुछ बार नीले बटन पर क्लिक करें।

इसने मेरे लिए काम किया। शुक्र है कि मैंने WHM उपलब्ध किया है।


5

यह काम किया

apt-get install php7.0-zip

और php7.0-fpmमैन्युअल रूप से पुनरारंभ करने की आवश्यकता नहीं है ।

अनपैकिंग php7.0-zip( 7.0.16-4+deb.sury.org~trusty+1) ... के लिए
प्रोसेसिंग ट्रिगर php7.0-fpm( 7.0.11-1+deb.sury.org~trusty+1) ...
php7.0-fpmस्टॉप / वेटिंग
php7.0-fpmस्टार्ट / रनिंग, प्रोसेस 1572
php7.0-fpmस्टॉप / वेटिंग
php7.0-fpmस्टार्ट / रनिंग, प्रोसेस 1777
सेट अप php7.0-zip( 7.0.16-4+deb.sury.org~trusty+1) ...
लोकेल: LC_ALLडिफ़ॉल्ट लोकेल में सेट नहीं किया जा सकता : ऐसी कोई फाइल नहीं या निर्देशिका

बनाना कॉन्फ़िग फ़ाइल /etc/php/7.0/mods-available/zip.iniनए संस्करण के साथ
के लिए प्रसंस्करण चलाता php7.0-fpm( 7.0.11-1+deb.sury.org~trusty+1) ...
php7.0-fpmबंद / इंतजार कर
php7.0-fpmआरंभ / चल रहा है, प्रक्रिया 2354
php7.0-fpmस्टॉप / इंतजार कर
php7.0-fpmआरंभ / चल रहा है, प्रक्रिया 2397


4

आपको ज़िप समर्थन के साथ PHP संकलित करने की भी आवश्यकता है। मैनुअल निम्नलिखित कहता है:

इन फ़ंक्शन का उपयोग करने के लिए आपको --enable-zip कॉन्फ़िगर विकल्प का उपयोग करके PHP को ज़िप समर्थन के साथ संकलित करना होगा।

यह केवल सर्वर पर सही एक्सटेंशन स्थापित करने के लिए पर्याप्त नहीं है। पूर्व में पोस्ट किए गए इंस्टॉलेशन निर्देश लिंक Pekka पर एक नज़र डालें। मेरा जवाब सिर्फ उसका स्पष्टीकरण है।


हां, लेकिन मुझे सर्वर पर यह कमांड कहां से चलानी चाहिए ताकि php जिप सपोर्ट के साथ चले
Parag Chaure

क्या यह एक सर्वर है जिसे आप नियंत्रित करते हैं? अगर मुझे लगता है कि यह PHP स्थापित करते समय मेक कमांड का हिस्सा है। यदि यह एक सर्वर नहीं है जिसे आप नियंत्रित करते हैं तो आपके लिए एकमात्र विकल्प यह है कि sys व्यवस्थापक इसे करने का प्रयास करें। क्षमा करें, मैं अधिक सटीक नहीं हो सकता-मैंने कभी भी किसी लिनक्स सर्वर पर खरोंच से PHP स्थापित नहीं किया है।
जेरेमी

4

मैं CentOS और cPanel के साथ एक ही मुद्दा था स्थापित सर्वर के । मैंने cPanel के माध्यम से zipArchive पैकेज स्थापित किया और उम्मीद के मुताबिक काम नहीं किया। इतने सारे सुधारों के साथ प्रयास करने के बाद हर जगह मेरे लिए नीचे दिए गए काम ने सुझाव दिया।

पहले नीचे दिए गए कमांड के साथ सही पैकेज के लिए नाम ढूंढें

yum search zip |grep -i php

फिर नीचे दिए गए कोड का उपयोग करें।

yum install your_zip_package_name_with_php_version

मेरे मामले में zipArchive को स्थापित करने के लिए सही कोड था

yum install php-pecl-zip.x86_64

मेरे पास इस लिंक से समाधान था। मैं PHP 7.2 पर CentOS 7 के साथ zipArchive को कैसे मिटा सकता हूं?

और इस इंस्टॉलेशन ने किसी तरह उस पैकेज को भी सक्षम कर दिया और इसने प्रभावी सेवाओं को भी फिर से शुरू कर दिया और उपरोक्त कोड के निष्पादन के पूरा होने के बाद zipArchive मुद्दा चला गया।


4

सेंटोस 6

yum install php-pecl-zip

service httpd restart

1
धन्यवाद। मैंने php-pecl-zip स्थापित किया है, लेकिन httpd को पुनः आरंभ किए बिना। अंत में आपका जवाब मिल गया!
Ngoc Nam

4

PHP 7.x के लिए

sudo apt-get install php-zip

PHP 5.x के लिए

sudo apt-get install php5.x-zip
// (for example sudo apt-get install php5.6-zip)

और फिर Apache सर्वर को पुनरारंभ करें

sudo service apache2 restart

3

PHP 5.2.0 और बाद में

लिनक्स सिस्टम

इन फ़ंक्शन का उपयोग करने के लिए आपको --enable-zip कॉन्फ़िगर विकल्प का उपयोग करके PHP को ज़िप समर्थन के साथ संकलित करना होगा।

खिड़कियाँ

विंडोज उपयोगकर्ताओं को इन कार्यों का उपयोग करने के लिए php.ini के अंदर php_zip.dll को सक्षम करने की आवश्यकता है।


3

ऐप इंजन मानक वातावरण में वर्डप्रेस को तैनात करते समय मुझे जीसीपी पर इस मुद्दे का सामना करना पड़ा। इससे यह हल हो गया:

sudo apt-get install php7.2-zip

1

सेंटी 7 के लिए और रेमी पर PHP 7.3 के लिए

ज़िप एक्सटेंशन के लिए खोजें:

$ yum search php73 | grep zip
php73-php-pecl-zip.x86_64 : A ZIP archive management extension

विस्तार नाम php73-php-pecl-zip.x86_64 है । PHP के एकल संस्करण को चलाने वाले सर्वर में इसे स्थापित करने के लिए, उपसर्ग php73 निकालें:

$ sudo yum --enablerepo=remi-php73 install php-pecl-zip #for server running single PHP7.3 version
$ #sudo yum --enablerepo=remi-php73 install php73-php-pecl-zip # for server running multiple PHP versions

PHP को पुनरारंभ करें:

$ sudo systemctl restart php-fpm

स्थापित PHP एक्सटेंशन की जाँच करें:

$ php -m
[PHP Modules]
apcu
bcmath
bz2
...
zip
zlib

1

CentOS आधारित सर्वर उपयोग के लिए

yum install php-pecl-zip.x86_64

इसे चलाकर सक्षम करें: echo "extension=zip.so" >> /etc/php.d/zip.ini


0

मेरे पास एक ही मुद्दा था और इसे दो कमांड लाइनों का उपयोग करके हल किया गया था:

sudo apt install php-zip

फिर अपाचे के लिए अपने वेब सर्वर को रिबूट करें

sudo service apache2 restart


0

के \ZIPARCHIVEबजाय लिखने की कोशिश करें ZIPARCHIVE


0

आपको PHP संस्करण की जांच करने की आवश्यकता है

यदि php संस्करण 5.6 है, तो आपको php5.7-zip इंस्टॉल करने की आवश्यकता है

sudo apt-get install php5.6-zip

और फिर

sudo service apache2 restart

आशा करता हूँ की ये काम करेगा


-13

1) आपको requireफ़ाइल के साथ अपनी फ़ाइल चाहिए ZipArchive

require 'path/to/file/ZipArchive.php';

2) या __autoloadकक्षा की विधि का उपयोग करें । PHP 5 में यह एक बढ़िया विधि है __autoload ()।

function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1(); // creating an object without require.

http://www.php.net/manual/en/language.oop5.autoload.php


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