PHP 未編譯/安裝 Zip 擴展(非 zlib),類 ZipArchive 不可用。
php.ini,啟用擴展:extension=zip (PHP 7.2+ 無需 .dll 後綴)extension=php_zip.dllzlib.output_compression = On(可選,壓縮輸出)。# 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/8 | yum install php-zip / dnf install php-zip |
| Debian/Ubuntu | apt-get install php-zip |
| Alpine | apk 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 -m | grep zip)。make install 需 root,建議 sudo make install。phpize/php-config/php.ini。