Laravel 5.0升级至最新版遇box/spout依赖问题:ext-zip缺失
解决Laravel升级中box/spout的ext-zip依赖问题
问题分析
你安装的php80-php-pecl-zip不是正确的适配包,RHEL7.9上搭配PHP8.0(通常来自Remi仓库)的官方zip扩展包是php80-php-zip,而非PECL版本。另外你之前在/etc/php.d添加的配置文件无效,因为Remi源的PHP8.0有独立的配置目录。
解决步骤
卸载错误的PECL包
sudo yum remove php80-php-pecl-zip.x86_64安装正确的zip扩展包
sudo yum install php80-php-zip.x86_64这个包会自动将扩展配置文件放到PHP8.0的专属目录
/etc/opt/remi/php80/php.d/,无需手动创建ini文件。验证扩展是否加载
执行以下命令检查CLI版本的PHP是否加载了zip扩展(Composer依赖CLI环境运行):php -m | grep zip如果输出
zip,说明扩展加载成功。重启服务(可选)
若需要确保Apache的PHP环境也加载扩展,重启Apache:sudo systemctl restart httpd重新执行Composer命令
现在可以继续运行:composer require box/spout或者回到升级流程执行
composer install。
注意:Laravel 5.0直接升级到最新版本跨度极大,后续可能还会遇到更多依赖兼容问题,建议分版本逐步升级(比如先升到5.1,再到5.2,直到最新版),降低升级风险。
内容的提问来源于stack exchange,提问作者Marina Frants
相关产品推荐
相关产品推荐

