【问题标题】:MAMP PHP Fatal error: Allowed memory size exhaustedMAMP PHP 致命错误:允许的内存大小已用尽
【发布时间】:2014-09-04 06:58:10
【问题描述】:

我知道当网站位于本地服务器上时,诊断和帮助会有些困难,但我希望其他人遇到过这种情况或大致了解这是什么以及为什么会发生这种情况? 这与 wordpress 有关,但是我觉得大部分问题与它没有任何关系,而是集中在 MAMP 和我得到的这个错误上。

我现在刚刚尝试将另一个网站迁移到我的本地服务器,但由于某种原因它无法正常工作……我得到的只是一个白屏。 我使用了来自 http://codex.wordpress.org/Editing_wp-config.php#Configure_Error_Logging

的错误记录技术
/**
 * This will log all errors notices and warnings to a file called debug.log in
 * wp-content (if Apache does not have write permission, you may need to create
 * the file first and set the appropriate permissions (i.e. use 666) )
 */
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

我还将我的 DEBUG 设置为 true。 所以我检查了我创建的这个 debug.log 文件并看到了这个错误

[2014 年 9 月 3 日 22:50:45] PHP 致命错误:/Applications/MAMP/htdocs/_ANEW/wp-admin/includes/misc 中允许的内存大小为 41943040 字节已用尽(尝试分配 30720 字节) .php 在第 620 行

这是什么意思?

我进入了弹出“错误”的位置,然后删除了看起来像这样的第 620 行

<input name="admin_color" id="admin_color_<?php echo esc_attr( $color ); ?>" type="radio" value="<?php echo esc_attr( $color ); ?>" class="tog" <?php checked( $color, $current_color ); ?> />

然后在同一个文件上出现另一个错误行,然后再次出现。因此,作为测试,我从页面中删除了所有内容。然后我在 post.php 页面上得到另一个错误行..

这是完整的 debug.log 文件

[03-Sep-2014 22:50:45] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 30720 bytes) in /Applications/MAMP/htdocs/_ANEW/wp-admin/includes/misc.php on line 620
[03-Sep-2014 22:55:02] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 30720 bytes) in /Applications/MAMP/htdocs/_ANEW/wp-admin/includes/misc.php on line 621
[03-Sep-2014 22:55:30] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 7680 bytes) in /Applications/MAMP/htdocs/_ANEW/wp-admin/includes/misc.php on line 616
[03-Sep-2014 22:55:50] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 7680 bytes) in /Applications/MAMP/htdocs/_ANEW/wp-admin/includes/misc.php on line 618
[03-Sep-2014 22:56:05] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 122880 bytes) in /Applications/MAMP/htdocs/_ANEW/wp-admin/includes/post.php on line 271
[03-Sep-2014 22:56:48] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 122880 bytes) in /Applications/MAMP/htdocs/_ANEW/wp-admin/includes/post.php on line 281
[03-Sep-2014 23:29:12] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 122880 bytes) in /Applications/MAMP/htdocs/_ANEW/wp-admin/includes/post.php on line 271
[03-Sep-2014 23:32:58] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 122880 bytes) in /Applications/MAMP/htdocs/_ANEW/wp-admin/includes/post.php on line 271

我用谷歌搜索了一下,似乎服务器给了你足够的内存,而且大多数东西甚至不应该使用这么多的空间。那么可能会发生什么?

我也查找了 php.ini 文件,但找不到。我需要 MAMP PRO 吗?

我很困惑。所以任何建议或建议将不胜感激。

【问题讨论】:

  • 第 620 行简直就是压垮骆驼的最后一根稻草……您需要跟踪代码以找到所有内存的使用位置……大型数组或文件加载到内存中通常是一个很好的起点

标签: php local


【解决方案1】:

转到 php.ini 文件并将 memory_limit 编辑为更高的值。从当前值的两倍开始并增加直到错误消失(然后添加一些 MB)

【讨论】:

  • 在哪里可以找到这个 php.ini 文件?我看了但没找到。
  • 这是一篇旧帖子,但如果我希望自己今天找到此信息,也许有些人也可能:该文件在您正在使用的 php 版本下。在 MAMP 首选项 -> PHP 中,找到你的 PHP 版本,我的是 php7.2.10,所以要编辑的文件是 /Applications/MAMP/Bin/Php/Php7.2.10/ 下的 php.ini,不要忘记重新启动服务器更改生效。在我的情况下,memory_limit = 256M。
【解决方案2】:

在授予更多内存之前,请找出是什么耗尽了您的所有内存。您可以通过重命名插件文件夹来禁用插件开始。大多数情况下,如果您这样做,并且您的网站在没有这些警告的情况下加载,这意味着您有一些插件占用了太多资源。如果这不起作用,请禁用您的活动主题并将其默认为 TwentyNineteen 或 WP 的最新主题。

【讨论】:

    【解决方案3】:

    您可以在 php 文件的开头添加以下代码,而不是更改 php.ini 文件:

    ini_set('memory_limit','32M');
    

    如果错误没有消失,慢慢增加 32M。

    这样,您可以将 memory_limit 设置为需要更多内存来执行的脚本,而不是整个 php 环境。

    如果你的代码消耗的内存比它应该的多,还要检查你的代码,因为从长远来看这可能会导致问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      • 2017-11-06
      • 2015-07-06
      • 2018-05-19
      相关资源
      最近更新 更多