Mam problem, że instaluję 'Archive_Zip 0.1.1' na serwerze Linux, ale kiedy próbuję uruchomić skrypt w celu utworzenia pliku zip, pojawia się błąd krytyczny
Błąd krytyczny:
ZipArchive
nie znaleziono klasy w ...
gdzie umieściłem kod
$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;
ale nie znajduje pliku klasy.
Proszę, powiedz mi rozwiązanie. Co mam zrobić, aby rozwiązać problem? Włożyłem również php.ini
plik do folderu, w którym znajduje się skrypt, ale nie działa.
php
zip
ziparchive
Parag Chaure
źródło
źródło
sudo apt-get install php7.2-zip
E: Unable to locate package php7.2-zip E: Couldn't find any package by regex 'php7.2-zip'
używanie Ubuntu 14.04 z php 7.2apt-get install php-zip
.Odpowiedzi:
Aby
ZipArchive
klasa była obecna, PHP musi mieć zainstalowane rozszerzenie zip .Zobacz tę stronę, aby uzyskać instrukcje dotyczące instalacji (zarówno w systemie Linux, jak i Windows).
źródło
sudo apt-get install php7.0-zip
sudo apt-get install php7.0-zip
. Następnie edytuj plik/etc/php/7.0/cli/php.ini
(w sekcji „Rozszerzenia dynamiczne” dodaj wierszextension=zip.so
). To powinno rozwiązać problemdocker-php-ext-install zip
sudo apt-get install php7.0-zip
ponownym uruchomieniu serwera Apachesudo systemctl restart apache2
Na Amazon ec2 z Ubuntu + nginx + php7 miałem te same problemy, rozwiązałem je za pomocą:
sudo apt-get install php7.0-zip
źródło
sudo apt-get install php7.1-zip
dla Ubuntu / php7.1php 7.2
i zawsze mówiE: Unable to locate package php7.2-zip E: Couldn't find any package by regex 'php7.2-zip'
Na pulpicie Ubuntu musiałem to zrobić.
Zainstalowało to bibliotekę, ale nadal otrzymywałem ten sam błąd, więc musiałem ponownie uruchomić Apache za pomocą:
i zadziałało.
źródło
Przede wszystkim rozwiązanie dla zdalnego serwera:
Jeśli używasz cpanel , być może masz zainstalowane rozszerzenie zip, ale nie możesz go aktywować. Musisz go aktywować. W tym przypadku musisz przejść do cpanel> wewnątrz sekcji oprogramowania> kliknąć wersję PHP . Następnie znajdź zip i sprawdź. Teraz oszczędzaj.
Powinieneś zobaczyć jak na obrazku.
Odśwież stronę. Błąd powinien zniknąć.
Uwaga: Jeśli nie możesz znaleźć, skontaktuj się z dostawcą serwera. Zainstalują dla ciebie.
źródło
Nie widzę tego tutaj, więc chciałbym dodać, że w Debianie / Ubuntu może być konieczne włączenie rozszerzenia po zainstalowaniu odpowiedniego pakietu. Więc:
źródło
php7.0-zip
dla PHP 7.Jeśli masz dostęp do WHM, jest to łatwiejsze.
Zaloguj się do WHM .
Przejdź do EasyApache 4 (lub dowolnej posiadanej wersji) w zakładce Oprogramowanie .
W sekcji Aktualnie zainstalowane pakiety kliknij Dostosuj .
Idź do PHP Extensions , w wyszukiwarce wpisz " zip " ( bez cudzysłowów ),
powinieneś zobaczyć 3 moduły
sprawdź je wszystkie,
kliknij niebieski przycisk kilka razy, aby zakończyć proces.
To zadziałało dla mnie. Na szczęście mam dostępne WHM.
źródło
To zadziałało
i nie ma potrzeby ponownego
php7.0-fpm
ręcznego uruchamiania .źródło
Musisz także skompilować PHP z obsługą zip. Instrukcja mówi, co następuje:
Nie wystarczy po prostu zainstalować poprawne rozszerzenia na serwerze. Spójrz na link do instrukcji instalacji, który Pekka zamieścił wcześniej. Moja odpowiedź jest tylko jego wyjaśnieniem.
źródło
Miałem ten sam problem z CentOS i cPanel zainstalowanym serwerem . Zainstalowałem pakiet zipArchive przez cPanel i nie działałem zgodnie z oczekiwaniami. Po wypróbowaniu tak wielu poprawek, które zasugerowałem, tylko poniższe działały dla mnie.
Najpierw znajdź nazwę odpowiedniego pakietu za pomocą poniższego polecenia
Następnie użyj poniższego kodu.
W moim przypadku poprawny kod do zainstalowania zipArchive to
Miałem rozwiązanie z tego linku. Jak mogę wstawić zipArchive w PHP 7.2 z CentOS 7?
I ta instalacja w jakiś sposób włączyła również ten pakiet, a także zrestartowała działające usługi i po zakończeniu wykonywania powyższego kodu problem zipArchive zniknął.
źródło
Centos 6
źródło
W przypadku PHP 7.x
W przypadku PHP 5.x
A następnie zrestartuj serwer Apache
źródło
PHP 5.2.0 i nowsze
Systemy Linux
Aby móc korzystać z tych funkcji, należy skompilować PHP z obsługą zip przy użyciu opcji konfiguracji --enable-zip.
Windows
Użytkownicy systemu Windows muszą włączyć php_zip.dll w php.ini, aby móc korzystać z tych funkcji.
źródło
Napotkałem ten problem na GCP podczas wdrażania wordpress w środowisku App Engine Standard. To rozwiązało problem:
źródło
Dla Centos 7 i PHP 7.3 na Remi
Wyszukaj rozszerzenie zip:
Nazwa rozszerzenia to php73-php-pecl-zip.x86_64 . Aby zainstalować go na serwerze z jedną wersją PHP, usuń prefiks php73:
Uruchom ponownie PHP:
Sprawdź zainstalowane rozszerzenia PHP:
źródło
Do użytku serwera opartego na CentOS
Włącz go, uruchamiając:
echo "extension=zip.so" >> /etc/php.d/zip.ini
źródło
Miałem ten sam problem i rozwiązałem go za pomocą dwóch linii poleceń:
sudo apt install php-zip
następnie zrestartuj serwer WWW dla Apache
sudo service apache2 restart
źródło
Spróbuj
\ZIPARCHIVE
zamiast tego pisaćZIPARCHIVE
.źródło
Musisz sprawdzić wersję PHP
Jeśli wersja php to 5.6, musisz zainstalować php5.7-zip
i wtedy
Mam nadzieję, że to pomoże
źródło
1) Powinieneś
require
swój plik zZipArchive
plikiem.2) Lub użyj
__autoload
metody klasowej. W PHP 5 jest to wielka metoda __autoload ().http://www.php.net/manual/en/language.oop5.autoload.php
źródło