首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

解決 PHP「Class ZipArchive not found」錯誤:Windows 與 Linux 環境下的安裝指南

     編輯:PHP 相關知識

錯誤原因

PHP 未編譯/安裝 Zip 擴展(非 zlib),類 ZipArchive 不可用。

Windows 環境安裝

  1. 打開 php.ini,啟用擴展:
    extension=zip (PHP 7.2+ 無需 .dll 後綴)
    或舊版:extension=php_zip.dll
  2. 確保 zlib.output_compression = On(可選,壓縮輸出)。
  3. 重啟 Apache/IIS/NGINX + PHP-FPM。

Linux 環境安裝(編譯安裝 PHP 情況)

# 1. 安裝依賴
yum install libzip-devel   # CentOS/RHEL
apt-get install libzip-dev # Debian/Ubuntu

# 2. 下載 PHP 源碼對應版本的 zip 擴展
cd /usr/src
wget https://pecl.php.net/get/zip-1.21.1.tgz
tar -zxf zip-1.21.1.tgz
cd zip-1.21.1

# 3. phpize 編譯
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-libzip
make
make install

# 4. 輸出提示安裝路徑,如 /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/zip.so

# 5. 修改 php.ini 添加
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/zip.so
; 或簡寫 (若 extension_dir 正確)
extension=zip

# 6. 重啟 PHP-FPM
systemctl restart php-fpm

包管理器一鍵安裝(推薦)

發行版命令
CentOS/RHEL 7/8yum install php-zip / dnf install php-zip
Debian/Ubuntuapt-get install php-zip
Alpineapk add php-zip

驗證測試

<?php
$zip = new ZipArchive();
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === true) {
    $zip->addFromString('hello.txt', 'Hello ZipArchive!');
    $zip->close();
    echo '成功創建 test.zip';
} else {
    echo '創建失敗,錯誤碼: ' . $res;
}
?>

常見坑點

  • PHP 版本不匹配:PECL 安裝的 zip 版本需與 PHP 版本兼容(查看 php -m | grep zip)。
  • libzip 版本過低:CentOS 7 默認 libzip 0.10,PHP 7.3+ 需 ≥ 0.11,需手動升級或啟用 remi 源。
  • 權限問題:make install 需 root,建議 sudo make install。
  • 多 PHP 版本共存:確保操作對應版本的 phpize/php-config/php.ini。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved