如何在升级 TYPO3 v11 到 PHP8 后修复页面崩溃?
2024-03-05 21:33:09
修复 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 设置,你将能够恢复网站的正常运行。