WordPress上传图片出现”HTTP错误”原因和解决方法
大家在使用WordPress的过程中,可能会遇到一些不同的错误。其中,在我们将图像和其他类型的文件上传到媒体库时,有时会发生WordPress HTTP错误。如下图所示:
那么,我们该如何解决这个 WordPress http 错误?导致错误的原因可能很多,但是按照下面说的9种办法依次进行排查,应该可以处理问题。
解决方案1:确认HTTP错误
有时,服务器中的临时故障可能会导致WordPress HTTP错误。在尝试本文中的任何解决方案之前,首先应该确保错误是否始终存在。
首先等待几分钟,然后再次上传媒体文件。如果第二次尝试成功,则可能意味着在错误发生时出现了暂时性问题。
此外,修改文件名,清楚掉一些特殊字符和符号, 比如撇号、分号、乱码字符等,最好只包含数字和字母,然后再上传试试。文件名包含特殊字符是很容易导致问题的。
题外话:尽可能使用中文或特殊字符命名文件,会为以后的维护带来麻烦: 因为编码问题,有时换主机时怎站搬家时,会出现中文名字的图片无法显示,出现乱码问题(一般长远来说,上传到主机的文件最好保持为英文命名,兼容性好) 。如果你很懒手动去修改文件名中的中文,可以使用 Wenprise Pinyin Slug:文件名、网址转拼音或英文
如果问题仍然存在,请继续尝试下面的方案。
解决方案2:切换浏览器
WordPress HTTP错误很可能与网站无关,可能是浏览器意外发生的结果。
有报告称,使用Google Chrome浏览器时会弹出HTTP错误。虽然它是一个出色的浏览器,但切换到其他浏览器可以让您确认问题是否与浏览器有关。
如果问题仍然存在,请继续往下。
解决方案3:停用插件
如果安装插件后出现WordPress HTTP错误,则最好的办法是将其停用。为了节省您的麻烦,已知图像优化插件可能会导致此问题。因此,如果您有图片优化插件,请暂时将其禁用,然后再次尝试上传图片。
如果HTTP错误消失,则可以尝试寻找替代的图像优化器插件。或者,您可以尝试与插件开发人员联系,以进一步解决错误。
但是,如果即使禁用所有插件后错误仍然存在,请继续下面提供的更多解决方案。
解决方案4:增加WordPress内存限制
WordPress中HTTP错误的常见原因是内存不足。它还可能导致许多其他问题,例如503服务不可用错误。要解决内存不足问题,只需在wp-config.php 文件中添加以下代码 :
define (‘WP_MEMORY_LIMIT’, ‘256M’);
上面的代码将您的PHP内存限制增加到256MB。在添加之前,您还应该通过检查PHP info来确认服务器上的最大可用内存限制。因为如果PHP内存限制为64M,那么即使你通过上面的代码定义WP的内存限制为256M,它也是不会生效的。
解决方案5:将GD设置为默认图像处理库
WordPress默认可以使用Imagick或GD库处理图像。尽管它们都很出色,但Imagick却因为耗尽可用内存并导致HTTP错误而臭名昭著。
为避免此问题,需要将GD库设置为默认编辑处理库。只需将下面的代码放到主题的 functions.php 文件中即可:
function hs_image_editor_default_to_gd( $editors ) {
$gd_editor = ‘WP_Image_Editor_GD’;
$editors = array_diff( $editors, array( $gd_editor ) );
array_unshift( $editors, $gd_editor );
return $editors;
}
add_filter( ‘wp_image_editors’, ‘hs_image_editor_default_to_gd’ );
保存更改,然后尝试再次上传图像。如果HTTP错误仍然存在,请还原代码更改,然后尝试下一个解决方案。
解决方案6:编辑.htaccess
如果你使用的是Apache环境,可以尝试通过.htaccess文件处理问题。 .htaccess文件一般在你的WordPress根目录(见上面的图片),并作为各种事情的看门人。它控制请求在许多其他功能中的去向。
要修复WordPress中的HTTP错误,请打开.htaccess并添加以下代码:
SetEnv MAGICK_THREAD_LIMIT 1
完成后,尝试再次上传文件看下问题是否已解决。如果不起作用,则可以测试更多代码片段:
SecFilterEngine Off
SecFilterScanPOST Off
或者
# 从身份验证中排除文件上传和WP CRON脚本
Satisfy Any
Order allow,deny
Allow from all
Deny from none
尝试单独添加它们,保存更改,然后再次上传媒体文件。如果还是不行,请往下看。
解决方案7:检查主题
如果在安装或更新WordPress主题后出现错误,则主题可能是罪魁祸首。一个好的方法切换到WP默认自带的官方主题。如果更换主题就恢复正常了,说明可能是之前的主题单独存在问题,也可能是主题与插件之间的不兼容。 可以尝试和主题作者联系和反馈问题。
解决方案8:检查您的PHP版本
从WordPress 5.2版开始,WordPress需要PHP 5.6.20 或更高版本才能平稳运行。没有达到这个要求可能会导致HTTP错误。有些主机空间默认使用旧版本的PHP,这意味着无论您尝试什么,都无法将图像上传到WordPress媒体库。
该怎么办?首先,登录虚拟主机控制面板,查看是否有可以切换PHP版本的功能,如果有,尝试切换到符合要求的PHP版本。如果没有,请与您的主机商联系,以确保他们使用的是 PHP 5.6.20 及更高版本。
解决方案9:清除缓存
尝试上述所有解决方案后,您还会遇到WordPress HTTP错误吗?也许您之前已经解决了该错误,但是您看到的“错误”来自本地缓存。在您认为没有解决方案可用了的时候,可以尝试清除浏览器缓存。