Laravel Excel导入CSV报Class 'ZipArchive' not found错误求助
解决Laravel-Excel导入CSV时出现“Class 'ZipArchive' not found”的问题
我之前也碰到过这种看似矛盾的情况——明明处理的是CSV文件,却报Zip相关的错误,一开始也摸不着头脑,后来查了laravel-excel的底层依赖才搞明白:
虽然你操作的是CSV格式,但laravel-excel依赖的PhpSpreadsheet核心库,不管处理哪种表格文件(包括CSV),都需要Zip扩展来支持内部的一些基础操作——比如临时文件的管理、解压库本身依赖的资源文件,哪怕CSV本身不需要压缩,库的架构设计还是离不开这个扩展。你的本地PC环境应该是默认预装了Zip扩展,所以没触发这个错误,而Debian服务器上没装就出问题了。
针对你的PHP7.1 Debian环境,解决步骤很直接:
- 先登录服务器,更新包列表并安装PHP7.1对应的Zip扩展:
sudo apt-get update && sudo apt-get install php7.1-zip - 安装完成后,需要重启Web服务和PHP-FPM确保扩展生效:
- 若使用Apache:
sudo systemctl restart apache2 - 若使用Nginx:
sudo systemctl restart nginx - 重启PHP7.1-FPM:
sudo systemctl restart php7.1-fpm
- 若使用Apache:
- 验证扩展是否安装成功,执行命令:
php -m | grep zip,如果输出zip就说明安装没问题了。
要是你的PHP是源码编译安装的(而非通过apt包管理),那需要重新编译PHP,编译时加上--with-zip参数,不过一般Debian服务器用apt安装的PHP,直接装上面的包就能搞定。
内容的提问来源于stack exchange,提问作者LinasM
相关产品推荐
相关产品推荐

