上传大型jpg文件(大约30 - 40MB)时收到HTTP Error
消息,我可以在{{1}返回的Chrome开发工具网络标签中看到500 Internal Server Error
响应}。
上传文件后出现错误。我可以在async-upload.php
目录中看到该文件,因此问题与上传过程无关。
我认为问题与上传文件后发生的图像大小调整过程有关。我尝试手动重建缩略图(使用多个重新生成缩略图插件)来证明问题与调整大小过程有关。所有这些都无法调整大图像的大小。
在发布此问题之前我做过的事情:
wp-content/uploads
文件中的内存限制增加到256MB(php.ini
)memory_limit = 256M
我已关闭post_max_size = 256M
设置:
mod_security
我也尝试更改默认图片库:
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
更新
我刚刚意识到我应用的过滤器没有做任何事情。我检查了WP源代码,发现此过滤器的默认值为:add_filter('wp_image_editors', function () {
return ['WP_Image_Editor_GD', 'WP_Image_Editor_Imagick'];
});
。我已经改变了顺序,但我没有安装Image Magic库,所以WordPress一直在使用GD库。
所以我安装了Image Magic PHP扩展程序试试看。我也删除了过滤器,因为它的默认值适用于我。
用Image Magic替换GD库解决了这个问题。,但我仍然很好奇为什么GD库无法处理这么大的图像。有没有办法以不同的方式解决这个问题?我不想依赖第三方库。我宁愿使用标准的PHP设置(如果在共享主机上部署站点,则无法安装自定义PHP扩展)。
答案 0 :(得分:3)
如果您已升级PHP版本。这可能导致旧插件这样做。同样的事发生在我身上。我将php 5.6升级到PHP 7并且发生了同样的错误。当我重新安装PHP 5.6时,它开始正常工作。
答案 1 :(得分:0)
尝试一下:
在wp-config.php
中进行以下更改:
define( 'WP_DEBUG', false);
收件人
define( 'WP_DEBUG', true );
为我工作!
答案 2 :(得分:0)
我已经尝试了大部分可能仍然无法正常工作的东西,毕竟我已经检查了插件文件夹已禁用并检查其是否对我有用的研究,请一一禁用插件并检查。这对我有用。谢谢:)
您可以重命名为插件文件夹名称( plugins 到 plugins_old )
谢谢