返回

如何在升级 TYPO3 v11 到 PHP8 后修复页面崩溃?

php

修复 TYPO3 v11 升级到 PHP8 后页面崩溃的全面指南

问题概述

在将 TYPO3 11.5.36 升级到 PHP 8.1.9 后,你是否遇到了网站崩溃的问题?令人沮丧的症状包括:

  • 缓存文件不断被重新写入。
  • 随后出现 ERR_CONNECTION_RESET 错误,表明 Apache 子进程已终止。
  • 后端和前端都无法正常工作。
  • 日志中找不到任何有用的信息。

不要担心,你并不是唯一遇到此问题的 TYPO3 用户。本指南将引导你逐步骤解决此问题,恢复网站的正常运行。

解决方案

1. 禁用系统扩展

从 PackageStates.php 中禁用以下 10 个左右的系统扩展:tstemplate、sys_note、setup 等。禁用后,网站应该可以访问,但后端功能将丢失。

2. 检查网站状态

如果网站在禁用系统扩展后可以访问,则表明其中一个扩展与 PHP8 不兼容。

3. 启用系统扩展

逐个启用系统扩展。如果在启用某个扩展后网站再次崩溃,则表明该扩展与 PHP8 不兼容。

4. 查看 Installtool

Installtool 应该始终可用。但刷新缓存可能会导致错误。

5. 检查 PHP8 设置

确保服务器已正确配置为使用 PHP8。检查 php.ini 文件中的以下设置:

  • extension=mysqli
  • extension=gd
  • extension=mbstring
  • extension=zip

6. 更新扩展

确保所有已安装的扩展都是最新版本,并且与 PHP8 兼容。

7. 禁用调试模式

在 typo3conf/LocalConfiguration.php 中禁用调试模式:

$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '';

8. 查看日志

在 typo3temp/var/logs/ 目录中检查日志文件,了解是否有任何其他错误或警告。

注意事项

  • 进行任何更改之前,请备份你的网站。
  • 如果问题仍然存在,请联系 TYPO3 社区寻求支持。

常见问题解答

1. 为什么要禁用系统扩展?

系统扩展可能与 PHP8 不兼容,导致网站崩溃。

2. 如何查看 Installtool?

在你的浏览器中输入 http://www.example.com/typo3/install/(用你的网站域名替换 example.com)。

3. 如何检查日志文件?

转到 typo3temp/var/logs/ 目录并检查是否有任何 .log 文件。

4. 如何禁用调试模式?

在 typo3conf/LocalConfiguration.php 文件中,将 $GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] 设置为空字符串。

5. 我应该如何联系 TYPO3 社区?

你可以访问 TYPO3 论坛或在 Slack 上加入 TYPO3 社区。

结论

按照这些步骤,你可以修复 TYPO3 v11 升级到 PHP8 后页面崩溃的问题。通过识别有问题的系统扩展、更新扩展和检查 PHP8 设置,你将能够恢复网站的正常运行。