如何解决413请求实体太大报错

错误类型:
HTTP错误
错误名称:
413 请求实体太大
英文名称:
413 Request Entity Too Large
错误描述:
413请求实体太大报错(413 Request Entity Too Large)这个报错不太多见,但并不代表它不存在。错误的本质非常清晰,即客户端所请求的实体,比如上传的文件超出限制所致。

如何解决413请求实体太大报错

WordPress错误有各种形式和大小。在大多数情况下,它们很容易破译。这就是WordPress错误报告的可访问性。即便如此,当“413 Request Entity Too Large”错误弹出时,它会让你摸不着头脑。

在没有意识到的情况下,您已经拥有了理解和诊断其名称中的错误所需的一切。好消息是您只需要标准的安全文件传输协议 (SFTP)客户端和管理员访问您的服务器即可。

在这篇文章中,我们将看看如何解决“413 Request Entity Too Large”错误。我们还将为您提供在开始解决错误之前要采取的步骤的快速列表,以使该过程超级简单。

413请求实体太大报错

413请求实体太大报错(413 Request Entity Too Large)这个报错不太多见,但并不代表它不存在。错误的本质非常清晰,即客户端所请求的实体,比如上传的文件超出限制所致。

既然知道这个错误的问题所在,那么我们需要做哪些应对措施以修复此报错就非常简单了。

这篇文章将详细说明该错误的本质及提出错误修复的解决方案:

  1. “413请求实体太大”错误是什么(以及它存在的原因)
  2. 解决“413请求实体太大”错误需要什么
  3. 在纠正“413 请求实体太大”错误之前可以采取的“准备步骤”
  4. 如何为您的WordPress网站解决“413 请求实体太大错误”

什么是413 Request Entity Too Large

413 Request Entity Too Large当从客户端作出的请求是过大,由Web服务器进行处理会出现误差。如果您的Web服务器设置了特定的HTTP请求大小限制,客户端可能会遇到413 Request Entity Too Large响应。可能导致此错误的示例请求是,如果客户端尝试将大文件上传到服务器(例如,大媒体文件)。

它取决于您使用的Web服务器的类型,这将决定您需要配置哪个指令。无论您是要限制用户将过大的文件上传到您的Web服务器,还是要增加上传大小限制,以下部分将说明如何操作。

我们注意到错误名称中有关于解决方案和问题的线索。不过,在你亲自调查之前,我们会破坏这个惊喜:它在形容词“大”中。

简而言之,“413 Request Entity Too Large”错误是一个大小问题。当客户端发出的请求太大而最终服务器无法处理时,就会发生这种情况。根据错误的性质,服务器可以完全关闭连接以防止发出进一步的请求。

让我们将错误分解为几个部分:

  • “413”:这是4xx错误代码之一,表示服务器和浏览器之间存在问题。
  • “请求实体”:在这种情况下,“实体”是客户端从服务器请求的信息负载。
  • “太大”:这很简单:实体比服务器愿意或能够服务的要大。

实际上,此错误已将其名称从最初的名称更改为更具体并提供更多清晰度。它现在被称为“413 Payload Too Large”错误,尽管在实践中,您会更多地看到旧名称。

至于为什么会出现错误,简单的解释是服务器设置为拒绝显式上传太大。想一想您上传文件时存在最大文件大小限制的情况:

TinyPNG主页

TinyPNG主页

在大多数情况下,会进行一些验证来阻止错误……如果您看到“413 Request Entity Too Large”错误,那么这些验证工作可能不像您想象的那样无懈可击。

修复414 Request-URI Too Large错误需要什么

如果您过去遇到过413 Request Entity Too Large错误,您会发现类似的414错误。当然,这些名称显示了它们的相似之处,因为它们在官方标准中彼此相邻并且具有几乎相同的描述。

鉴于此,您用于修复413的工具和技能列表也将与414相同:

在纠正“413请求实体太大”错误之前可以采取的“准备步骤”

在您打开工具箱之前,您可以采取一些步骤来帮助解决“413 Request Entity Too Large”错误。这里有两个——每个都可以为您提供一个受欢迎的解决方法。

1.尝试通过SFTP将大文件上传到您的服务器

因为这个问题与服务器的文件大小有关,所以最好绕过前端接口并自己将大文件上传到服务器。最好的方法是通过SFTP。

这是因为就访问服务器的方式而言,诸如SFTP之类的协议几乎与您所能获得的一样“接近骨子里”。此外,您可以同时排除任何可能导致错误的前端问题。

为此,请通过SFTP登录您的站点并找到wp-content文件夹。在这里将是上传文件夹。

从SFTP客户端看到的上传文件夹

从SFTP客户端看到的上传文件夹

接下来,将你的文件上传到服务器上的这个文件夹,看看结果如何。如果上传成功,我们建议向网站的开发人员发送电子邮件,因为他们可能希望在前端进一步调查问题。

2.检查服务器权限错误

当然,权限错误会阻止任何服务器请求运行。因此,您应该检查用户是否有足够的权限上传任何大小的文件。排序后,错误应该消失。

第一步是确定这是否是单个用户的问题(在这种情况下,他们可能由于某种原因受到限制)。如果多个用户出现“413 Request Entity Too Large”错误,您可以更加确定需要您输入的内容。

我们在这里建议两个“预修复”:

  • 仔细检查您的WordPress文件权限,以防万一出现问题。
  • 删除并重新创建您的SFTP用户(一般调查是个好主意)。

虽然他们可能无法在一开始就解决错误,但您至少会知道您的文件和用户结构是应有的。

修复413 Request Entity Too Large错误

完成前期步骤后,您就可以正面解决错误了。

以下三种方法从最简单到最困难列出,理解为阻力最小的路径是最好的路径。

1. 编辑您的WordPress functions.php文件

首先,您可以使用您的functions.php文件来帮助增加您网站的文件上传大小。为此,首先使用主机控制面板中的凭据通过SFTP登录您的站点。

当您进入时,您会想要查找文件本身。functions.php文件应该位于服务器的根目录中。在许多情况下,此根称为wwwpublic_html,或者它可能是您网站的缩写名称。

找到它后,您可以在您选择的文本编辑器中打开它。如果您没有看到该文件,您可以使用文本编辑器创建它。

打开文件后,输入以下内容:

@ini_set( '_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );

简而言之,这增加了帖子和上传的最大文件大小,同时增加了服务器尝试处理请求的时间。这里的数字可以是你想要的任何数字,但它们应该足够大以使错误消失。实际上,除了最繁重的任务之外,64MB就足够了。

functions.php文件

functions.php文件

准备好后,保存文件并再次将其上传到服务器。然后,检查“413 Request Entity Too Large”错误是否仍然存在。如果是这样,请转到下一个方法。

2. 修改您的WordPress .htaccess文件

就像您的functions.php文件一样,您的.htaccess文件位于您的服务器上。这里的区别在于.htaccessApache服务器的配置文件。

不过,对于那些拥有Apache服务器的人来说,这是您需要的方法。与functions.php的指南非常相似,首先通过SFTP登录到您的服务器,然后像以前一样查看您的根文件夹。

.htaccess文件应该在这个目录中,但如果它丢失了,我们建议您与您的主机联系以确定它在哪里,以及您的服务器是否在Nginx上运行。

找到后,再次打开它。你会看到一些标签,这里最重要的是# END WordPress. 您需要在此行之后粘贴以下内容:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

简而言之,这与您添加到functions.php文件中的代码几乎相同,但它类似于向服务器提供直接指令。

.htaccess文件

.htaccess文件

完成后,保存更改,上传文件,然后再次检查您的站点。如果您仍然遇到问题,我们再次建议您联系您的房东,因为他们需要验证您设置的某些方面,这些方面超出了本文的范围。

此外,对于Apache Web服务器,有一个名为LimitRequestBody的类似指令。该指令提供的功能与client_max_body_size您能够限制HTTP请求的大小相同LimitRequestBody指令可以在您的http.conf文件或.htaccess文件中定义。Apache中此指令的默认值是0,但是,您可以将此值设置为您喜欢的任何值(该值以字节表示)。

例如,如果您想限制大于100 MB的请求,您可以使用以下内容。

LimitRequestBody 104857600

完成更改后,保存配置文件并使用以下命令重新加载 Apache:

service apache2 reload

3. 改变你的Nginx服务器配置

我们的最后一种方法是特定于Nginx服务器。目的与使用.htaccess文件时相同,因为您是在与服务器对话,而不是通过WordPress。

我们提到对于Apache服务器,您将使用.htaccess。但是,对于Nginx服务器,您需要找到nginx.conf文件。我们没有引导您完成链中的每一步,而是在我们的问中详细介绍了更改WordPress最大上传大小

根据您使用的Web服务器,实施下面描述的必要更改以配置您的Web服务器的最大HTTP请求大小限额。通过这样做,您可以设置允许客户端上传的阈值文件大小,如果超过该限制,他们将收到一个413 Request Entity Too Large状态。

对于Nginx用户,决定允许的HTTP请求大小的指令是client_max_body_size. 该指令可能已经在您的nginx.conf文件(/etc/nginx/nginx.conf)中定义。但是,如果不是,您可以在http, server或者location块中添加该指令并定义一个值。

server {
client_max_body_size 100M;
...
}

该指令的默认值为1M(1 兆字节)。如果您不希望有请求大小限制,您可以将该值设置为0

设置所需的值后,保存更改并通过运行以下命令重新加载Nginx:

service nginx reload

请记住,您还需要根据对nginx.conf所做的更改来更改php.ini文件。我们也在上述博客文章中介绍了这一点,因此请查看那里的确切步骤。

附加配置 – PHP用户

除了修改Web服务器上的相应指令外,PHP用户还需要进行一些其他更改。首先,您需要打开php.ini文件,该文件很可能位于类似于/etc/php5/fpm/php.ini(取决于您的PHP版本)的目录中。接下来,您需要找到并修改以下指令:

  • upload_max_filesize定义上传文件的最大允许大小(默认为 2 MB)。
  • post_max_size定义了PHP将接受的POST最大数据大小。此设置还会影响文件上传(默认为8MB)。

一旦上述指令被修改,以反映所需的容许HTTP请求大小,简单地保存配置并重新加载PHP-FPM通过运行下面的命令:

service php-fpm restart

评论留言