繁体   English   中英

Typo3 缓存刷新异常 - 如何调试

[英]Typo3 Cache Flush Exception - How to debug

我在服务器上有一个 dockerized TYPO3 实例,并尝试手动刷新 typo3 缓存。 所以,我在我的 docker 容器中使用以下命令来做到这一点:

vendor/.bin/typo3cms cache:flush

但是,它失败并返回此错误:

[ TYPO3\CMS\Core\Error\Exception ]
Warning: rename(): The first argument to copy() function cannot be a directory in /home/app/vendor/typo3/cms/typo3/sysext/core/Classes/Utility/GeneralUtility.php line 2432

我如何调试它并找出问题所在?

使用 -vvv 进行完整堆栈跟踪

  [ TYPO3\CMS\Core\Error\Exception ]
  Warning: rename(): The first argument to copy() function cannot be a directory in /home/app/vendor/typo3/cms/typo3/sysext/core/Classes/Utili
  ty/GeneralUtility.php line 2432


Exception code: 1

Exception trace:
#0 ()
   vendor/helhum/typo3-console/Classes/Console/Error/ErrorHandler.php:86
#1 Helhum\Typo3Console\Error\ErrorHandler->handleError()
#2 rename()
   typo3/sysext/core/Classes/Utility/GeneralUtility.php:2432
#3 TYPO3\CMS\Core\Utility\GeneralUtility::flushDirectory()
   vendor/helhum/typo3-console/Classes/Compatibility/TYPO3v87/Service/CacheLowLevelCleaner.php:31
#4 Helhum\Typo3Console\TYPO3v87\Service\CacheLowLevelCleaner->forceFlushCachesFiles()
   vendor/helhum/typo3-console/Classes/Console/Command/Cache/CacheFlushCommand.php:69
#5 Helhum\Typo3Console\Command\Cache\CacheFlushCommand->execute()
   vendor/symfony/console/Command/Command.php:255
#6 Symfony\Component\Console\Command\Command->run()
   vendor/symfony/console/Application.php:1000
#7 Symfony\Component\Console\Application->doRunCommand()
   vendor/helhum/typo3-console/Classes/Console/Mvc/Cli/Symfony/Application.php:169
#8 Helhum\Typo3Console\Mvc\Cli\Symfony\Application->doRunCommand()
   vendor/symfony/console/Application.php:271
#9 Symfony\Component\Console\Application->doRun()
   vendor/symfony/console/Application.php:147
#10 Symfony\Component\Console\Application->run()
   vendor/helhum/typo3-console/Classes/Console/Core/Kernel.php:148
#11 Helhum\Typo3Console\Core\Kernel->handle()
   vendor/helhum/typo3-console/Scripts/typo3-console.php:30
#12 {closure}()
   vendor/helhum/typo3-console/Scripts/typo3-console.php:32
#13 require()
   vendor/helhum/typo3-console/typo3cms:3

cache:flush [--files-only]

这是一个已知问题, 已在 TYPO3 控制台 5.8.6 版中修复。

好吧,问题是:如何调试它。 即使问题现在已经解决,这可能会有所帮助:

你得到了异常跟踪。 您在 GeneralUtility.php 的第 2432 行设置了一个断点。

如果您已经设置了 xdebug,您只需要使用适当的选项启动命令行命令,例如使用-e来生成调试信息。

你也可以看看DDEV。 我上次尝试时,它运行得非常好,可以让调试器运行,请参阅https://ddev.readthedocs.io/en/stable/users/step-debugging/

我通常将 xdebug 与 PhpStorm 结合使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM