开源了一个把老 PHP 站点自动升级到 PHP 8.5 的工具(应对 PHP2Shell 漏洞)

这次 PHP2Shell 远程代码执行漏洞只在 PHP 8.2~8.5 的新版本里修复(8.5.12 / 8.4.27 / 8.3.36 / 8.2.35),PHP 8.1 及以前的版本不会再出补丁。

我手上有一批 PHP 7.3 时代的老站(帝国CMS、ThinkPHP 5 等),直接换 PHP 8.5 会大量报错甚至整站 500。为了升级,我做了一个自动迁移工具,现在开源出来,希望能帮到同样处境的人。

功能

  • 扫描:找出与 PHP 8.5 不兼容的写法,生成中文报告
  • 预演:在副本上自动修复,输出完整差异,不改原代码
  • 修复:确认后再正式修改,自动备份,可一键还原
  • 升级包:只打包有变更的文件、兼容层和 php.ini 模板,直接覆盖到服务器

能自动处理的问题 :短标签 <?、each()、create_function()、$str{0}、未加引号的数组键 $r[title]、PHP4 风格构造函数、. 和 + 的优先级变化、count(null) 等 TypeError,以及帝国CMS 模板缓存、ThinkPHP 5 把 Deprecated 当致命错误等框架问题。

在一个真实的帝国CMS 站点上,它自动修复了 1400 多个文件,需要人工处理的是 0 处。

Windows 用户下载 Release 里的完整包,解压后双击 bat 文件即可使用;Linux / macOS 用户执行 composer install 后就能用。

GitHub:github.com/isgod88-web...

工具免费,按 MIT 协议开源,但不保证没有问题。上线前请务必备份,并在测试环境验证。欢迎提 issue。

相关推荐
用户别睡觉8 小时前
有时候放弃也是一种收获
人工智能·github
愚坤9 小时前
前端真有意思,JS还能独立做项目?
前端·javascript·github
dong_junshuai10 小时前
每天一个开源项目#157 Modern Web Guidance:让Agent按需查浏览器能力
github
一条Go14 小时前
OnCall 时段路由:跨午夜、左闭右开与「Local 不是时区」
后端·架构·github
黎羽_1 天前
《开源 PR 实战》系列(三):22 个 PR 之后,批量提 PR 的打法
开源·github·代码评审·pull request·协作
fthux1 天前
总想着“忙完再休息”?让 Tick Rest 提醒你,先歇一会儿
开源·github·mac·swift·提醒·消息提醒·tick rest·tick rest for mac·消息提醒app
dong_junshuai1 天前
每天一个开源项目#156 Astryx:主题编译、异步按钮与源码接管
github
逛逛GitHub1 天前
把你的 AirPods 当鼠标用,这 3 个黑科技 GitHub 开源项目有趣。
github
徐小夕2 天前
开源Vector-Graph-RAG:向量+图谱双引擎,打破纯向量RAG的效果天花板
前端·vue.js·github
GitHub实测笔记2 天前
zoxide 本机实测:一万条记查询中 5.7ms0.10 版 import --from
github