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

问题描述 投票:3回答:4

我知道当网站在本地服务器上时,诊断和帮助有点困难,但我希望有其他人遇到这个问题或者大致了解这是什么以及为什么会发生这种情况?这与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.php中,允许的内存大小为41943040字节已用尽(尝试分配30720字节)第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

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

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

我很困惑。任何建议或意见都将不胜感激。

php local
4个回答
6
投票

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


1
投票

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

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

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

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

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

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


0
投票

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


0
投票

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

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

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

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

如果您的代码消耗的内存超出应有的内存,请检查您的代码,因为从长远来看这可能会导致问题

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.