因服务器无PHP 7.1,如何将Laravel 5.6降级至5.5?
Laravel 5.6 降级至 5.5 版本步骤
没问题,我帮你一步步梳理如何把Laravel 5.6降级到5.5版本,确保适配你的服务器环境:
第一步:做好备份(重中之重)
一定要先备份!把整个项目文件夹复制一份存档,同时保存好当前的composer.lock文件。万一降级过程中出现依赖冲突或代码问题,随时可以回滚到原来的状态。第二步:修改
composer.json依赖配置
打开项目根目录的composer.json文件,调整以下内容:- 将
laravel/framework的版本从5.6.*修改为5.5.* - 同步调整Laravel官方扩展包的版本,比如
laravel/tinker要改为~1.0,laravel/passport如果存在的话要改为~4.0(对应5.5的兼容版本) - 把
require段里的PHP版本要求从>=7.1.3改成>=7.0.0(因为Laravel 5.5支持PHP 7.0及以上,刚好匹配你的服务器环境)
- 将
第三步:清理5.6特有的配置文件
Laravel 5.6新增了一些5.5没有的配置,需要清理或调整:- 删除项目根目录下的
config/logging.php文件(5.5的日志配置集成在config/app.php中) - 打开
.env文件,删除LOG_CHANNEL相关的配置项,然后在config/app.php里确认log配置项为single或daily等5.5支持的选项 - 检查其他配置文件(比如
config/queue.php),如果有5.6新增的配置项,删除或调整回5.5的格式
- 删除项目根目录下的
第四步:执行Composer依赖更新
打开终端进入项目根目录,运行以下命令更新依赖:composer update laravel/framework --with-all-dependencies如果遇到依赖冲突,可以尝试先删除
vendor文件夹和当前的composer.lock(记得之前已经备份),然后运行:composer install第五步:检查代码兼容性
5.6和5.5之间有一些API差异,需要排查代码:- 比如5.6新增的
Route::redirect()方法在5.5中不存在,你需要替换为Route::get('/old-url', function () { return redirect('/new-url'); })这种写法 - 检查Eloquent模型中是否使用了5.6新增的方法(如
latestOfMany()),这些方法在5.5中没有实现,需要改用等价的逻辑 - 测试项目的核心功能(用户认证、数据库操作、路由跳转等),确保没有报错
- 比如5.6新增的
第六步:清理Laravel缓存
最后运行以下命令清除缓存,确保新配置生效:php artisan cache:clear php artisan config:clear php artisan route:clear
内容的提问来源于stack exchange,提问作者Mahesh Samudra
相关产品推荐
相关产品推荐

