concrete5 中的内存泄漏

Memory leak in concrete5

我正在尝试在新服务器上安装来自不同服务器的 concrete5 版本。

当我复制配置和数据库时,它加载了一段时间,然后抛出错误 500。PHP 错误日志告诉我这是一个内存限制问题。

然后我将内存限制设置为 2GB,但它仍然达到了限制。我启用了 xdebug 并检查了问题所在。似乎一遍又一遍地调用了一些递归函数。这是堆栈跟踪的片段:

[04-Oct-2016 21:10:47 Asia/Kuwait] PHP Stack trace:
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   1. {main}() C:\inetpub\wwwroot\tce\index.php:0
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   2. require() C:\inetpub\wwwroot\tce\index.php:2
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   3. require() C:\inetpub\wwwroot\tce\concrete\dispatcher.php:94
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   4. Concrete5_Library_Localization::init() C:\inetpub\wwwroot\tce\concrete\config\localization.php:41
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   5. Concrete5_Library_Localization::getInstance() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:8
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   6. Concrete5_Library_Localization->__construct() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:17
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   7. Concrete5_Library_Localization->setLocale() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:62
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   8. Concrete5_Library_Loader->package() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:117
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP   9. t() C:\inetpub\wwwroot\tce\concrete\core\libraries\loader.php:334
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  10. Concrete5_Library_Localization::getTranslate() C:\inetpub\wwwroot\tce\concrete\startup\localization.php:12
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  11. Concrete5_Library_Localization::getInstance() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:159
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  12. Concrete5_Library_Localization->__construct() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:17
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  13. Concrete5_Library_Localization->setLocale() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:62
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  14. Concrete5_Library_Loader->package() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:117
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  15. t() C:\inetpub\wwwroot\tce\concrete\core\libraries\loader.php:334
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  16. Concrete5_Library_Localization::getTranslate() C:\inetpub\wwwroot\tce\concrete\startup\localization.php:12
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  17. Concrete5_Library_Localization::getInstance() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:159
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  18. Concrete5_Library_Localization->__construct() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:17
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  19. Concrete5_Library_Localization->setLocale() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:62
[04-Oct-2016 21:10:47 Asia/Kuwait] PHP  20. Concrete5_Library_Loader->package() C:\inetpub\wwwroot\tce\concrete\core\libraries\localization.php:117

有人能说说这可能是什么问题吗?

因为这个问题也让我浪费了好几个小时,所以我会在一年后回答,让各位googler们看看。

我找不到解决这个问题的方法。所以:问题是 /package/ 文件夹中缺少文件。这导致本地化一遍又一遍地搜索这个包。它永远递归。

问题不在于不同的服务器,也不在于另一个 php 版本,正如我最终发现的那样 - 只是缺少一些文件。这就是当您将区域设置更改为 en_US 时它起作用的原因 - 翻译器不会 运行.