You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 v10升级至v12求助:传统模式下升级步骤及故障解决

TYPO3 v10 升级到 v12 分步指南及扩展检查器问题解决

一、前期必做准备

  • 全量备份:把整个站点的文件打包,数据库导出SQL文件,确保备份能正常恢复——这步绝对不能省,出问题全靠它回滚。
  • 搭测试环境:在本地或测试服务器上复制生产环境,PHP版本先匹配v10要求(7.2-7.4),别直接动生产站。
  • 列扩展清单:从后台“扩展管理”导出已装扩展列表,或者直接看typo3conf/ext目录,标记清楚哪些是TER扩展、哪些是自己写的自定义扩展。

二、先从传统模式转Composer模式(v12仅支持Composer,这步绕不开)

  1. 装Composer:在测试环境的站点根目录执行这几条命令:
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"
    
  2. 初始化Composer项目:
    • 运行composer init,跟着提示填信息,注意把TYPO3的基础包设为typo3/cms-base-distribution
    • 拉取v10的Composer依赖:composer require typo3/cms-base-distribution:^10.4
  3. 迁移现有内容:
    • 把原typo3conf下的LocalConfiguration.php、AdditionalConfiguration.php复制到新的config目录(Composer模式下配置文件换位置了)
    • 复制fileadmin、uploads(如果有)到站点根目录
    • 迁移扩展:
      • TER扩展:去TER上找对应扩展的Composer包名(比如新闻扩展是typo3/cms-news),用composer require [包名]:^对应v10的版本安装
      • 自定义扩展:把扩展文件夹放到packages目录,然后在composer.json里加本地仓库配置:
        "repositories": [
            {
                "type": "path",
                "url": "packages/*"
            }
        ]
        
        再执行composer require [你的扩展vendor/name]:dev-main(具体版本看扩展自己的composer.json)
  4. 验证运行:执行composer install,然后访问站点,确保后台能登录,前端正常显示。

三、分版本升级:先升v11,再升v12(跨版本直接升必炸)

第一步:升级到TYPO3 v11 LTS

  1. 先把PHP版本升到7.4-8.0(v11的要求)
  2. 更新Composer依赖:
    • 执行composer require typo3/cms-base-distribution:^11.5 --with-all-dependencies
    • 处理依赖冲突:如果某个扩展不支持v11,要么找更新版本,要么先禁用,记下来后续处理
  3. 跑升级向导:
    • 登录后台,进“系统>升级向导”,把所有提示的步骤都执行完(包括数据库结构更新、配置迁移)
    • 适配自定义扩展:改ext_emconf.php和composer.json里的TYPO3版本依赖为^11.5,修复代码里的废弃API(v10的一些函数在v11会抛警告,直接换成新API)
  4. 测试:确保前端、后台所有功能正常,扩展都能跑。

第二步:升级到TYPO3 v12 LTS

  1. 把PHP版本升到8.1-8.2(v12的要求)
  2. 更新Composer依赖:
    • 执行composer require typo3/cms-base-distribution:^12.4 --with-all-dependencies
    • 处理依赖冲突:TER扩展不支持v12的,要么找兼容版,要么换替代扩展;自定义扩展要全面适配v12的API——比如把旧钩子换成事件订阅者,把ext_tables.php里的TCA移到Configuration/TCA目录,用依赖注入替代GeneralUtility::makeInstance()之类的。
  3. 跑升级向导:
    • 执行后台的升级向导,完成数据库更新和配置迁移
    • 调整配置:v12改了不少$GLOBALS['TYPO3_CONF_VARS']里的选项,对照官方文档把旧配置换成新的。
  4. 全面测试:每个功能都测一遍,包括前端页面、后台操作、扩展功能,遇到报错逐个修复。

四、解决扩展检查器卡顿崩溃问题

  • 大概率是内存不够或者某个扩展有致命代码问题导致的,按下面的方法来:
    1. 加内存限制:在php.ini里把memory_limit设成256M(或更高),或者在AdditionalConfiguration.php里加ini_set('memory_limit', '256M');
    2. 分批排查:别一次性检查所有扩展,先禁用一半,跑检查器,找到导致崩溃的那批;再细分,定位到具体扩展后,单独查它的代码(比如语法错误、调用了已移除的API)
    3. 手动检查自定义扩展:直接对照TYPO3 v10到v12的升级文档,挨个查代码里的废弃项,比如:
      • TCA配置要从ext_tables.php移到Configuration/TCA目录
      • 替换GeneralUtility::makeInstance()为构造注入/依赖注入
      • 旧钩子换成事件订阅者
    4. 清缓存:跑检查器前,清空TYPO3所有缓存(后台点“系统>清理缓存”,或者删var/cache下的文件)

内容的提问来源于stack exchange,提问作者anisgh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:12:19