3

HTTP Error在上传大 jpg 文件(大约 30 - 40MB)时收到一条消息,我可以500 Internal Server Error在 Chrome 开发工具网络选项卡中看到由async-upload.php.

上传文件后出现错误。我可以看到目录中的文件wp-content/uploads,所以问题与上传过程无关。

我想这个问题与上传文件后发生的图像大小调整过程有关。我尝试手动重建缩略图(使用几个重新生成缩略图插件)以证明问题与调整大小过程有关。他们都未能调整大图像的大小。

我在发布这个问题之前所做的事情:

  • 我已将php.ini文件 ( memory_limit = 256M)中的内存限制增加到 256MB
  • post_max_size = 256M
  • 设置一个新的 WP 实例。没有插件,默认主题。
  • 在不同的机器上测试(在 VPS 上,相同的 PHP 设置)
  • 我关闭了mod_security设置:

    <IfModule mod_security.c>
        SecFilterEngine Off
        SecFilterScanPOST Off
    </IfModule>
    
  • 我还尝试更改默认图像库:

    add_filter('wp_image_editors', function () {
        return ['WP_Image_Editor_GD', 'WP_Image_Editor_Imagick'];
    });
    

更新:

我刚刚意识到我应用的过滤器没有做任何事情。我检查了 WP 源代码,发现此过滤器的默认值为:['WP_Image_Editor_Imagick', 'WP_Image_Editor_GD']. 我更改了顺序,但我没有安装 Image Magic 库,所以 WordPress 一直在使用 GD 库。

所以我安装了 Image Magic PHP 扩展来试一试。我还删除了过滤器,因为它的默认值对我有用。

用 Image Magic 替换 GD 库解决了这个问题。,但我还是很好奇为什么GD库不能处理这么大的图像。有没有办法以不同的方式解决这个问题?我不想依赖第三方库。我宁愿使用标准的 PHP 设置(如果将站点部署在无法安装自定义 PHP 扩展的共享主机上)。

4

4 回答 4

3

如果你升级了 PHP 版本。这可能会导致旧插件这样做。同样的事情也发生在我身上。我将 php 5.6 升级到 PHP 7 并发生了同样的错误。当我重新安装 PHP 5.6 时,它开始正常工作。

于 2016-10-28T14:59:43.760 回答
0

我已经尝试了大多数可能仍然无法正常工作的东西,毕竟,我已经检查了插件文件夹的研究已禁用并检查了它是否对我有用,请一一禁用插件并检查。这对我有用。谢谢 :)

您可以重命名为插件文件夹名称( plugins 为 plugins_old )

谢谢

于 2021-03-10T09:45:48.450 回答
0

尝试这个:

wp-config.php改变这个:

define( 'WP_DEBUG', false);

define( 'WP_DEBUG', true );

对我有用!

于 2019-09-25T12:55:35.713 回答
-2

这是一个服务器BUG。如果您不更改 php.ini 或 .htacess,请尝试上传 PNG 文件。这个技巧对我有用!

在此处输入图像描述

于 2017-11-28T02:37:15.700 回答