【问题标题】:Out of memory when uploading an image in WordPress在 WordPress 中上传图片时内存不足
【发布时间】:2014-06-13 04:38:11
【问题描述】:

当我尝试在 WordPress 中上传文件时收到“内存不足”错误消息。我要上传的文件是一个文件大小约为 1.6mb、尺寸约为 2500 x 2500 的图像。我正在使用Simple Local Avatars 插件进行上传。该插件使用WP功能wp_handle_upload()。我收到的具体错误消息是:

致命错误:内存不足(已分配 84410368)(试图分配 9792 字节)在第 339 行的 wp-admin/includes/image-edit.php 中。

我的目标是查明究竟什么是“内存不足”。这会是我的服务器内存不足吗?或者这会是客户吗?例如用户的浏览器?我注意到可能很重要的一件事是,如果我使用笔记本电脑或 iPad,我可以毫无问题地上传,但如果我使用 iPhone 或上网本,我总是会遇到错误。

如果您有任何指点,我将不胜感激,以便我解决问题。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    我注意到可能很重要的一件事是我可以上传 如果我使用笔记本电脑或 iPad 没有问题,但我总是会遇到 如果我使用 iPhone 或上网本,则会出现错误。

    这真的只是巧合。

    但是当 WordPress 激活插件或上传大图时内存不足是相当常见的。

    尝试通过几种不同的方式增加 PHP 和 Wordpress 的内存:

    1) 您可以编辑 php.ini 中的 memory_limit 行(如果您有权访问该文件)以将内存增加到 64M:

    memory_limit = 64M;

    2) 尝试在wp-config.php 文件的下方添加“define”行,并在文件中开头的<?php 下方添加几行空白:

    define('WP_MEMORY_LIMIT', '64M');

    3) 如果这些不起作用,请尝试在 .htaccess 文件的顶部添加这一行:

    php_value memory_limit 64M

    如果这不起作用或引发“500 内部服务器错误”,请从 .htaccess 中删除该行。

    如果这些都不起作用,您的主机可能不允许内存分配覆盖。你被他们给的东西困住了。

    你可以运行 phpinfo 来查看你已经分配了什么样的内存。制作一个纯文本文件并将其命名为 phpinfo.php 并将这一行放入其中:

    <?php phpinfo(); ?>

    然后将文件放在服务器的根目录中,然后使用 Web 浏览器访问该文件。你会看到你需要的所有 php 信息;向下滚动以查看内存设置。如果您收到错误,则表示您的网络托管公司出于安全原因不允许运行 phpinfo。

    【讨论】:

    • 我无法访问 php.ini 文件,因此创建了一个新文件并将 memory_limit 设置为 256M。定义define('WP_MEMORY_LIMIT', '256M' 似乎也是必要的。 .htaccess 解决方案实际上确实导致了 500 内部服务器错误。 phpinfo() 也很有帮助 - 它让我可以检查我对内存限制所做的更改是否有效。
    • 您没有提到的一件事是MaxRequestLen 设置。请参阅此处stackoverflow.com/a/9698474/1709033 了解更多信息。您认为这可能是问题所在吗?
    • @henrywright:OP 没有显示 http 错误,并且答案已被 OP 接受,所以它可能有效。
    • 嗨@songdogtech - 关于你的解决方案 - 它有效,非常感谢!但是,我似乎也收到了 HTTP 错误 - 当我在 WP 管理区域中使用 WordPress 媒体上传器时,它出现在屏幕上。也许这与我在问题中强调的内存问题不同?如果是这种情况,我们深表歉意
    • 我认为这可能与我原来的问题中的“内存不足”错误不同,所以我创建了一个新问题stackoverflow.com/questions/23343691/… - 感谢您对我原来的问题的帮助跨度>
    【解决方案2】:

    这是服务器端限制,而不是客户端/浏览器。

    您的网络托管商对 PHP 的内存限制有限制,特别是 PHP INI 设置memory_limit。您无能为力,您需要联系您的网络托管商并询问是否可以增加限制。

    http://us3.php.net/manual/en/ini.core.php#ini.memory-limit

    【讨论】:

    • 我也有同样的想法,但让我怀疑的是,上传在我的笔记本电脑和 iPad 上可以正常工作 - 但我总是在功能较弱的 iPhone 和上网本上遇到错误。如果这是服务器内存问题,那么在我尝试上传的所有设备上不会出现错误吗?
    • 另外,错误消息说试图分配 '9792' 字节,这远低于分配的 '84410368' 字节。没听懂?
    猜你喜欢
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多