如何修复上传图片到WordPress媒体库时的HTTP错误提示
错误类型: WP内部错误 错误名称: HTTP错误 英文名称: HTTP Error 错误描述: 当尝试使用内置媒体库工具上传图像或视频时出现问题时,会发生WordPress HTTP错误。不幸的是,与我们通常可以引用HTTP状态代码的浏览器错误不同,WordPress错误有时更难解决(特别是如果您不知道如何启用WordPress调试模式)。
和任何平台一样,总会有那些恼人的错误或问题,你必须学会如何解决它们。相信我们,我们几乎都见过!从死白屏到数据库连接错误,WordPress一定有它的怪癖。但是我们还是喜欢!今天,我们将深入探讨一个更常见的问题,即HTTP错误。当用户试图将图片或视频上传到WordPress媒体库时,经常会出现这种情况。
虽然HTTP错误通常很容易修复,但它可能会令人沮丧,因为它通常会中断您的工作流。没有什么比花20分钟为你的博客文章寻找完美的图片更糟糕的了。你去上传,然后嘭,突然遇到一个很模糊的错误。
下面,我们将探讨这个错误的原因,以及您可以采取什么措施来快速解决它,以便您可以重新上传媒体。
什么是HTTP错误?
当试图使用内置媒体库工具上传图像或视频时出现问题,就会出现WordPress HTTP错误。不幸的是,与我们通常可以参考HTTP状态代码的浏览器错误不同,WordPress错误有时更难解决(特别是如果你不知道如何启用WordPress调试模式)。
非常模糊的“HTTP错误”永远无法帮助您确定哪里可能出错,甚至无法帮助您确定从哪里开始查找。但那是因为失败的原因可能有好几个,WordPress根本不知道为什么,所以会吐出一个一般的错误信息(如下图)。
上传图片时WordPress提示HTTP错误
如何修复WordPress网站中的HTTP错误
根据我们的经验,WordPress HTTP错误通常源于两个方面:第一是客户端或用户错误(您的登录会话、文件名中的错误字符等。),其次就是你的WordPress主机(服务器问题,内存列表,第三方插件,共享主机限制资源等。).因此,我们将深入探讨这两个问题。
以下是修复错误的一些建议和检查项目(按我们看到的最常见原因排序):
刷新页面
或者缩小或调整文件大小。
重命名图像文件
暂时禁用插件和主题
询问你的WordPress主机
增加PHP内存限制
检查上传文件夹权限。
移动到PHP的最新版本
修复Imagick和共享主机的性能问题。
删除自定义媒体库路径
禁用模块安全性
添加到服务器插件
1.刷新页面
当你遇到一个WordPress HTTP错误时,你应该做的第一件事就是在你的浏览器中刷新页面。这听起来是不是太容易了?嗯,其实这是我们见过最常见的修复方式。原因如下:
第一,不管什么原因,你的浏览器可能会暂时失去与WordPress的连接,这个过程根本无法完成。这可能是由于你的ISP、你的WordPress主机等暂时出现故障。如果您刷新页面并尝试再次上传,错误有时会自行解决。
其次,我们也看到有时候在刷新页面或者从另一个标签页返回WordPress editor之后,它会突然把你踢出去。这可能表明你的WordPress登录会话已经过期。您应该会看到以下消息:
您的会话已过期。请登录,从上次停止的地方继续。
您的会话已过期。
很自然,您重新登录并尝试再次上传您的媒体。但是,出现了HTTP错误。这是WordPress的一个怪癖。重新登录后,您实际上需要手动刷新您所在的页面。然后上传的媒体将再次工作。
2.减小或调整文件大小
您可能需要编辑图像文件,这可能需要减小文件大小(KB或MB)或宽度/高度(像素)。我们建议查看我们关于如何优化图像的深入文章。当您的图像上传到媒体库时,您可以使用许多第三方图像优化插件来自动执行此操作(缩小和调整大小)。
可以用Imagify,一个非常好的插件。但是还有很多其他的选择。只要确保无论你使用哪个插件,他们都是在他们自己的服务器上优化图像,而不是在本地。如果你在本地批量优化图片,这可能会严重损害你网站的性能。
WordPress插件-图像
上传高分辨率的图片是可能的,因为WordPress支持即时响应的图片。事实上,您可能希望图像在视网膜显示器上看起来清晰。然而,除非您的摄影师或企业需要高分辨率的图像,否则一个好的经验法则是将最终图像大小保持在100KB以下,并且不超过网站内容div宽度的两倍。
此外,您可能必须使用PNG和JPG文件类型。有时一个可能比另一个大得多,这取决于它是什么类型的图像。
根据你的WordPress主机的配置,你也可以考虑增加WordPress的最大上传文件大小。
3.重命名图像文件
尝试重命名图像文件没有坏处。如果你试图上传一个重复的文件名,WordPress会自动在末尾添加一个数字,但是如果这不起作用,请尝试重命名你的文件。遗憾的是,WordPress不允许您重命名已上传图像文件的文件,因此您需要在本地重命名这些文件,然后重新上传。
当我们上传现有的图片时,我们通常会在末尾添加-1或-2(例如:image-file-1.png,image-file-2.png)。一定要加破折号,不然Google会把它当成一个词,可能会影响你的SEO。
另外,为了安全起见,请避免上传文件名中带有特殊字符的图片。这包括国际语言符号和字符,如撇号。急奔没问题。一般情况下,建议使用英文或拼音作为文件名,不要使用特殊字符。虽然WordPress在技术上可以支持这些,但可能会出现许多其他问题。
重命名不带特殊字符的图像文件。
4.暂时禁用插件和主题
如果你遇到HTTP错误,尝试停用插件或者甚至将WordPress主题切换到默认主题,看看是否能解决问题,这总是一个好主意。一些典型的罪魁祸首包括图像优化插件(与媒体库直接关联)和WordFence等安全插件(有时过于严格)。或者你可以简单地删除你的WordPress主题。
如果不想影响你的live站点,就把你的live站点克隆到一个临时环境中。如果暂存时也发生了WordPress HTTP错误,那么您可以快速停用所有插件,开始缩小范围。
记住,如果你只是停用插件,你不会丢失任何数据。如果您仍然可以访问您的管理员,一个快捷的方法是浏览到“插件”,并从批处理操作菜单中选择“停用”。这将禁用您的所有插件。
停用所有插件
如果这解决了问题,您将需要找到罪魁祸首。开始逐个激活它们,然后再次尝试在媒体库中上传图像。当您看到HTTP错误返回时,您会发现行为不当的插件。然后,你可以联系插件开发者寻求帮助,或者在WordPress插件库中发布支持工单。
如果无法访问WordPress管理后台,可以通过FTP访问你的服务器,将你的插件文件夹重命名为plugins_old。然后再次检查你的网站。如果成功了,那么你需要一个接一个的测试每个插件。将您的插件文件夹重新命名为plugins,然后在if中重命名每个插件文件夹,直到找到它。您也可以尝试先在临时网站上复制此内容。
重命名插件文件夹
你的WordPress主题也是如此。主题通常不会与媒体库相关联,但我们看到过一些奇怪的设置。尝试将你的主题切换到2022年的默认主题,看看是否能修复它,这不会有什么坏处。就像使用插件一样,不用担心会丢失当前的主题设置。所有这些都存储在WordPress数据库中。
5.询问你的WordPress主机
如果你已经尝试了上面的步骤,但是仍然收到WordPress HTTP错误,我们建议你在继续之前联系你的WordPress主机寻求帮助。许多额外的故障排除步骤更加高级,很多时候您可以要求您的主机为您执行或检查它们。
6.增加PHP内存限制
WordPress HTTP错误的另一个原因是您的服务器缺少成功完成后台上传过程的可用内存。这是共享WordPress主机的一个常见问题。要修复它,您需要增加PHP可以使用的内存量。建议使用256 MB。
使用wp-config.php增加PHP内存限制
您可以通过在文件wp-config.php中添加以下代码来增加PHP内存限制。注意:这可能会被你的WordPress主机的服务器级规则覆盖。
define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
在cPanel中增加PHP内存限制
如果您的主机使用cPanel,您可以用两种不同的方法增加PHP内存限制。
第一个在软件部分。点击“选择PHP版本”。点击“切换到PHP选项”。然后你可以点击“memory_limit”来改变它的值。
第二个也在软件部分。单击MultiPHP INI编辑器工具。这允许您修改php.ini文件。只需向下滚动到显示“memory_limit”的位置,然后输入一个更大的值。
在cPanel中增加PHP内存限制
使用php.ini增加php内存限制
如果不使用cPanel,也可以直接在php.ini中编辑文件(如果有权限的话)。为此,请通过FTP或SSH登录到您的站点,转到站点的根目录,打开或创建一个php.ini文件。
无法通过SSH连接?了解如何修复SSH“连接被拒绝”错误。
如果文件已经存在,搜索“memory_limit”设置并根据需要进行修改。
一些共享主机可能还要求您在。htaccess文件来使上面的php.ini文件设置生效。为此,请编辑。htaccess也位于站点的根目录中,并将以下代码添加到文件的顶部:
suPHP_ConfigPath /home/yourusername/public_html
使用。htaccess增加PHP内存限制
的。htaccess文件是一个特殊的隐藏文件,它包含可以用来修改服务器行为的各种设置,一直到目录的特定级别。如果您没有访问php.ini的权限,我们建议您接下来尝试这个操作。首先,通过FTP或SSH登录到您的站点,检查您的根目录,看看是否有。htaccess文件。
如果有,可以编辑文件,修改“php_value memory_limit”的值。
7.检查上传文件夹权限。
通常,当一个文件夹权限错误发生时,你应该在WordPress中收到一条消息,说明它不能写入目录。然而,情况可能并不总是如此。如果WordPress网站被黑客攻击或者感染了恶意软件,可能会出现很多权限问题。
您关心的主要文件夹是您的/wp-content/uploads文件夹,因为这是通过媒体库上传文件时存储文件的地方。
根据WordPress Codex,所有的目录都应该是755 (drwxr-xr-x)或者750。
您可以使用FTP客户端轻松查看文件夹权限(如下所示)。你也可以联系你的WordPress主机支持团队,让他们快速获得文件夹和文件的GREP文件权限,以确保它们设置正确。
如果您手动更新此文件夹的权限,请同时选中“递归到子目录”和“仅应用于目录”选项。
WordPress上传目录许可
8.迁移到PHP的最新版本
WordPress官方推荐PHP 7.3以上版本。如果你不运行它,那么你就低于CMS开发者设定的最低要求。
我们总是建议运行最新的和受支持的PHP版本,因为它提供了更好的安全性和性能,包括错误修复和需要弃用的功能。
我们已经看到旧版本的PHP会导致各种错误,包括臭名昭著的WordPress HTTP错误。在Pagoda Panel中,你只需要在Pagoda Panel仪表盘左侧的“网站”菜单中找到需要切换PHP版本的网站,然后点击“设置”即可。
宝塔网站管理
在弹出窗口中,单击PHP版本,然后从PHP版本下拉菜单中选择您需要的版本。
宝塔面板开关PHP版本
如果您的主机使用cPanel,他们可能已经为您提供了更改PHP版本的选项。只需登录cPanel,点击“软件”类别下的“选择PHP版本”即可。
选择PHP版本
然后,您可以选择您的主机支持的可用PHP版本。
cPanel中的PHP 7
9.修复Imagick和共享主机的性能问题。
WordPress有两个不同的PHP模块用于图像处理:GD库和ImageMagick (ImageMagick)。取决于你的服务器上安装了什么,WordPress可以使用其中任何一种。
问题是共享WordPress主机在幕后有很多隐藏的资源限制。这是他们在同一台机器上塞进这么多用户的唯一方法。人们遇到的一个常见问题是分配给Imagick (ImageMagick)的资源太少。主机将限制使用多线程的能力,导致WordPress HTTP错误。
通过在顶部添加以下代码,可以将线程限制值更改为更高的值。的htaccess文件。
MAGICK_THREAD_LIMIT 1
你的另一个选择是告诉WordPress使用GD库而不是Imagick。只需将下面的代码添加到你的主题functions.php文件中。
function wpb_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’, ‘wpb_image_editor_default_to_gd’ );
我们将直言不讳。如果你不得不做这样的调整,是时候迁移到一个新的WordPress主机了。而且在大多数情况下,你只是受到PHP worker的限制。作为网站所有者,你不必担心这些类型的事情。
10.删除自定义媒体库路径。
很可能是您的媒体库路径设置不正确。当用户将他们的本地开发站点迁移到生产时,我们通常会看到这种情况。如果你在WordPress dashboard的“设置”下看到“媒体”并看到列出的文件路径值,请继续删除它并点击“保存更改”。您希望将媒体存储在默认的/wp-content/uploads文件夹中。
这是它通常的样子。如果您没有看到库路径,那么您在这里就很好。
WordPress媒体设置
11.禁用模块安全性
Mod_security是一款开源防火墙,有时可能会导致WordPress HTTP错误。您可以通过将以下代码添加到。htaccess文件。
SecFilterEngine Off SecFilterScanPOST Off
如果你正在使用cPanel,你也可以在“安全”部分点击“ModSecurity”来禁用它。
cPanel ModSecurity
然后,在要禁用的域旁边,将状态从“开”切换到“关”。
禁用模块安全性
我们一直推荐使用价格合理的企业级WAF,比如Sucuri或者Cloudflare。
12.安装从服务器添加插件
但最后一点也很重要,如果你真的有麻烦,而且似乎没有其他工作,你可以安装免费的Add From Server插件。也许你正在等待WordPress主机或开发者关于如何解决WordPress HTTP错误的回复。
WordPress插件-从服务器添加
添加到服务器插件通常会让你绕过错误,可以是一个很好的临时修复,特别是如果你正在做一些重要的事情。最初开发它是为了让你通过SFTP添加非常大的文件。重要提示:这个插件不再被维护或支持。使用风险自担。
总结
正如你所看到的,有许多不同的方法来修复WordPress HTTP错误。我希望上面的一个解决方案对你有用,并且你已经回到了上传媒体的轨道上。如果你一次又一次地得到这个错误,可能是时候考虑升级到一个更好的WordPress主机了。