Có phải PHP của bạn nói rằng nó không thể tìm thấy lớp ZipArchive?
Bạn cũng có thể muốn đọc về. Laravel dành cho nghệ nhân web
Bạn sẽ thấy lỗi sau
PHP Fatal error: Uncaught Error: Class 'ZipArchive' not found
Ngoài ra, bên dưới là một ví dụ về mã bạn có thể đang sử dụng
$zip = new \ZipArchive[];
$x = $zip->open[$target_path];
if [$x === true] {
$zip->extractTo[$target_dir . $name[0]];
$zip->close[];
}
Mục lục
Lỗi này nghĩa là gì?
Lỗi này có nghĩa là PHP không thể tìm thấy lớp ZipArchive. Do đó, PHP cần cài đặt tiện ích mở rộng zip để Lớp ZipArchive có mặt
Bạn có thể kiểm tra xem ZipArchive đã được cài đặt hay chưa bằng cách sử dụng tệp thông tin PHP
Xem một ví dụ dưới đây
Tệp thông tin PHP của bạn sẽ trả về một cái gì đó như thế này
Tiếp theo, cuộn xuống cho đến khi bạn tìm thấy tiêu đề “Cấu hình” và sau đó tiếp tục cho đến khi bạn thấy thông tin sau
Bạn sẽ biết rằng lớp ZipArchive không được kích hoạt nếu bạn không nhìn thấy. Cấu hình “Zip” “đã bật”
Bạn cũng có thể kiểm tra xem mô-đun Zip có được bật hay không bằng CLI
Hiển thị được biên dịch trong các mô-đun bằng cách sử dụng. php -m
user@server:/var/www/html# php -m
[PHP Modules]
Core
ctype
date
dom
zip
zlib
[Zend Modules]
Vì danh sách mô-đun PHP có thể khá lớn, hãy cân nhắc sử dụng lệnh grep để lọc danh sách của bạn
php -m | grep -i zip
Hoặc bạn có thể sử dụng “php -m” để hiển thị thông tin PHP trong CLI
Cách bật ZipArchive trên Windows
Người dùng Windows có nó dễ dàng. Bạn không cần phải làm bất cứ điều gì nếu bạn sử dụng PHP 5. 3 hoặc mới hơn. Vì vậy, đừng tin rằng mã được viết và đánh giá trên Windows sẽ hoạt động trên Linux
Kể từ PHP 5. 3, phần mở rộng này được tích hợp sẵn. Trước đây, người dùng Windows cần bật php_zip. dll bên trong php. ini để sử dụng các chức năng này
https. //www. php. net/manual/en/zip. cài đặt. php
Trước khi bạn kích hoạt ZipArchive
Bạn có thể kích hoạt hỗ trợ Zip trong quá trình cài đặt PHP và sau khi thực tế. Bài đăng này sẽ tập trung vào cài đặt ZipArchive sau thực tế trên Linux. Vui lòng đọc hướng dẫn cài đặt Zip từ hướng dẫn sử dụng PHP để biết thêm thông tin
Trước khi bạn tiếp tục, hãy lưu ý lệnh hữu ích sau để tải phiên bản PHP hiện tại của bạn
user@server:/var/www/html# php -v
PHP 7.4.2 [cli] [built: Feb 1 2020 19:39:30] [ NTS ]
Copyright [c] The PHP Group
Zend Engine v3.4.0, Copyright [c] Zend Technologies
Lưu ý phiên bản trong ví dụ trên là. 7. 4. 2. Do đó, chúng tôi sẽ cần cài đặt mô-đun Zip cho phiên bản PHP 7. 4. Hãy nhớ thay đổi số phiên bản để khớp với số của bạn nếu lệnh yêu cầu
Ngoài ra, hãy đảm bảo rằng các gói của bạn được cập nhật bằng cách sử dụng lệnh “apt-get update”
user@server:/var/www/html# apt-get update
Hit:1 //security.debian.org/debian-security buster/updates InRelease
Hit:2 //deb.debian.org/debian buster InRelease
Hit:3 //deb.debian.org/debian buster-updates InRelease
Reading package lists.. Done
Cuối cùng, bạn có thể cần xác định vị trí của tệp php đã tải. tập tin ini. Xin lưu ý rằng CLI sử dụng phiên bản của nó
Sử dụng lệnh sau để giúp bạn
user@server:/var/www/html# php --ini
Configuration File [php.ini] Path: /usr/local/etc/php
Loaded Configuration File: /usr/local/etc/php/php.ini
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
/usr/local/etc/php/conf.d/docker-php-ext-redis.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini
Cách bật ZipArchive trên Docker
Đầu tiên, chạy lệnh sau để cài đặt Zip và biên dịch PHP chính xác để chạy nó
________số 8_______
Dưới đây bạn sẽ thấy cách khởi động lại Apache hoặc NGINX. Khi bạn cài đặt, bạn đã hoàn thành
Lưu ý rằng bạn sẽ nhận được một “E. Gói ‘php-XXX’ không có ứng viên cài đặt” lỗi nếu bạn cố cài đặt bất kỳ gói PHP nào của Debian. Lỗi này là hành vi dự định mặc định của hình ảnh PHP Docker chính thức
Bạn có thể xem một ví dụ về hành vi này bên dưới
user@server:/var/www/html# apt-get install php-zip
Reading package lists.. Done
Building dependency tree
Reading state information.. Done
Package php-zip is a virtual package provided by:
php7.3-zip 7.3.14-1~deb10u1 [Not candidate version]
php7.3-zip 7.3.11-1~deb10u1 [Not candidate version]
E: Package 'php-zip' has no installation candidate
Bạn cũng có thể gặp lỗi sau nếu chỉ định một phiên bản cụ thể
$zip = new \ZipArchive[];
$x = $zip->open[$target_path];
if [$x === true] {
$zip->extractTo[$target_dir . $name[0]];
$zip->close[];
}
0Cách bật ZipArchive trên Linux trên Ubuntu
Lệnh cài đặt PHP Zip
$zip = new \ZipArchive[];
$x = $zip->open[$target_path];
if [$x === true] {
$zip->extractTo[$target_dir . $name[0]];
$zip->close[];
}
1Đầu ra sẽ dẫn đến một cái gì đó như thế này
$zip = new \ZipArchive[];
$x = $zip->open[$target_path];
if [$x === true] {
$zip->extractTo[$target_dir . $name[0]];
$zip->close[];
}
2Xin lưu ý rằng bạn có thể cần chỉ định phiên bản PHP nếu bạn đã nâng cấp lên phiên bản PHP gần đây
Đừng quên khởi động lại máy chủ web của bạn
Tệp cấu hình [php. ini] chỉ được đọc khi PHP hoặc máy chủ web khởi động. Tương tự, php. ini chỉ được đọc khi gọi phiên bản CGI và CLI
Bạn có thể khởi động lại Apache bằng cách sử dụng
$zip = new \ZipArchive[];
$x = $zip->open[$target_path];
if [$x === true] {
$zip->extractTo[$target_dir . $name[0]];
$zip->close[];
}
3Tương tự như vậy, bạn có thể khởi động lại NGINX bằng cách sử dụng
$zip = new \ZipArchive[];
$x = $zip->open[$target_path];
if [$x === true] {
$zip->extractTo[$target_dir . $name[0]];
$zip->close[];
}
4kết thúc
Thật dễ dàng để tải các tệp nén trang web của bạn và tránh lỗi nghiêm trọng. Tôi hy vọng rằng bây giờ bạn đã biết cách bật ZipArchive cho PHP. Không ai thích nhìn thấy một “Lỗi nghiêm trọng. Không tìm thấy lớp 'ZipArchive' trong"
Bạn cũng có thể quan tâm
- Cách sử dụng Tar và Zip
- Gọi hàm không xác định idn_to_ascii[]
- Cách xem lỗi shell_exec[] trong PHP
- Cài đặt Kali Linux bằng VirtualBox trên Ubuntu
- Cách kiểm tra mã PHP bằng PHPUnit
Giới thiệu về tác giả
Nhóm biên tập của Anto cũng yêu thích đám mây như bạn. Mỗi thành viên trong nhóm biên tập của Anto đều là chuyên gia về Đám mây theo cách riêng của họ. Anto Online rất tự hào trong việc giúp đỡ những người đam mê Cloud. Hãy cho chúng tôi biết nếu bạn có ý tưởng tuyệt vời cho chủ đề tiếp theo. Liên hệ với Anto Online nếu bạn muốn đóng góp