EC2环境下PHP无法读取Xlsx文件,本地主机正常的问题求助
问题解决:EC2上PhpSpreadsheet读取Xlsx报错ZipArchive未找到
问题根源
Xlsx格式本质是ZIP压缩包,PhpSpreadsheet读取Xlsx时必须依赖PHP的ZipArchive扩展。你的EC2服务器PHP环境未安装或启用该扩展,而Xls是旧格式无需ZIP处理,因此仅Xlsx读取失败,本地环境因预装该扩展所以正常运行。
解决步骤
根据EC2使用的操作系统选择对应操作:
1. Amazon Linux 2(YUM包管理)
- 先查看当前PHP版本:
php -v - 安装对应版本的zip扩展:
- PHP 7.x版本:
sudo yum install php-zip - PHP 8.x版本(以8.0为例):
sudo yum install php8.0-zip
- PHP 7.x版本:
- 重启Web服务(根据你使用的服务选择):
# Apache sudo systemctl restart httpd # PHP-FPM(如果用的是FPM) sudo systemctl restart php-fpm
2. Ubuntu/Debian(APT包管理)
- 更新软件源:
sudo apt update - 安装对应PHP版本的zip扩展(以PHP7.4为例):
若为PHP8.1则执行:sudo apt install php7.4-zipsudo apt install php8.1-zip - 重启Web服务:
# Apache sudo systemctl restart apache2 # PHP-FPM sudo systemctl restart php7.4-fpm
3. 验证安装结果
执行以下命令,若输出zip则说明扩展已成功安装:
php -m | grep zip
也可以创建一个包含<?php phpinfo(); ?>的文件,访问后搜索ZipArchive确认是否启用。
内容的提问来源于stack exchange,提问作者Antharaz
相关产品推荐
相关产品推荐

