MAMP PHP致命错误:允许的内存大小耗尽

时间:2014-09-04 06:58:10

标签: php local

我知道当网站在本地服务器上时,诊断和帮助有点困难,但是我希望有其他人遇到这个问题或者大致了解这是什么以及为什么会发生这种情况? 这与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文件并看到了这个错误

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

这意味着什么?

我进入弹出“错误”的位置,然后删除了看起来像这样的第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

我已经google了一下,似乎服务器给你足够的内存,大多数东西甚至不应该使用这么大的空间..那么可能会发生什么?

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

我很困惑。任何建议或建议都会受到赞赏。

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

感谢您回答user4004936,但我需要知道在哪里查找php.ini文件。所以这对于那些希望通过简单的旧MAMP增加内存限制的人来说。

在这里找到正确的php.ini文件 - http://www.crained.com/488/mamp-how-to-edit-the-php-ini-file/

一旦提高了记忆力限制,你应该没事。我把它提升到64M,但仍然出错!我从来不知道的文件的奇怪,疯狂,随机错误。

我终于删除了我正在使用的备份,将其重新迁移到新数据库,仍有问题,然后将限制设置为一个非常高的数字,重新启动服务器然后再没有错误。

奇怪的是,在将限制设定为64M之后,它不再抱怨这种疲惫错误,但每次都会出现不同的错误,从而进一步推动你进入兔子洞。

在这种情况下,如有疑问;使用原始备份并确保在php.ini文件中设置一个非常高的限制。 ;)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您无需更改php.ini文件,而只需将以下代码添加到php文件的开头即可:

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

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

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

还要检查您的代码是否占用了更多的内存,因为这可能会导致长期问题