【问题标题】:cakephp cli throws PHP fatal errorcakephp cli 抛出 PHP 致命错误
【发布时间】:2018-08-29 09:53:34
【问题描述】:

最初的安装是在带有 PHP 5.5.9 和 CakePHP 5.4.1 的 Ubuntu 14.04 上。在使用 PHP 7.0.30 迁移到 Ubuntu 16.04 后,我主要通过交换 lib 文件夹将 CakePHP 更新到 2.10.4。在 Web 界面中一切正常,甚至是应用程序的内存消耗任务。 但是 CLI 坏了。每次调用“app/Console/cake”都会引发“PHP 致命错误”。

root@watt18:/var/www_external/app# Console/cake bake
PHP Fatal error:  Allowed memory size of 2097152 bytes exhausted (tried to allocate 8192 bytes) in /var/www_external/lib/Cake/Console/ConsoleOptionParser.php on line 510
PHP Fatal error:  Allowed memory size of 2097152 bytes exhausted (tried to allocate 32768 bytes) in /var/www_external/lib/Cake/I18n/I18n.php on line 1

“in”部分因调用而异。在网上搜索我找不到任何可比较的主题。我检查了“应用程序”内所有文件夹的权限,但找不到与原始安装的任何差异。我试图调试,但还没有走得很远。直到 Console/cake.php 中的 return ShellDispatcher::run($argv); 行,一切都很好。

从新下载的原始 cakephp 文件夹中进行调用时,我得到了相同的结果。

我不知道所有内存在哪里丢失。我会很高兴任何提示可能导致问题或如何继续调试。

【问题讨论】:

  • 2 MB 的内存 waaaaay 对于几乎任何不仅仅是 echo 'hello world'; 的 PHP 脚本来说都太低了,更不用说框架了,尤其是在命令行中预计正在执行负载繁重的任务。
  • 上!你当然是对的。我被数字误导了。 VM 的定义以 KiB 为单位,因此总内存大小为 2GB,这对于原始安装来说一直是足够的。我不明白 PHP 从哪里获得其允许的内存大小。设置为 128MB。正如 MaxGeek 所建议的,将其更改为 -1 可以暂时解决问题。
  • 它可以在很多地方定义/覆盖(ini 文件、vhost 配置、htaccess 文件、PHP 代码...),我真的不知道您的环境中可能发生什么。

标签: php cakephp


【解决方案1】:

在你的 php.ini 中设置 memory_limit = -1

但这不是一个好的解决方案,你可能在某个地方有内存泄漏

请仔细检查你的陈述,特别是如果有一个循环使用很多内存

【讨论】:

  • 没有可用的内存超过 2097152 字节。这正是 VM 定义中的值。双重检查陈述是什么意思?正如我所提到的,我在没有添加任何项目的原始 CakePHP 安装中得到了相同的结果。
  • 所以你需要仔细检查你的算法,也许你的语句内存不足。如果只是模块的安装,我只是通过手动调用 composer 来完成安装来解决
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
  • 2015-01-18
  • 1970-01-01
相关资源
最近更新 更多