WordPress错误有各种形式和大小。在大多数情况下,它们很容易破译。这就是WordPress错误报告的可访问性。即便如此,当“413 Request Entity Too Large”错误弹出时,它会让你摸不着头脑。
在没有意识到的情况下,您已经拥有了理解和诊断其名称中的错误所需的一切。好消息是您只需要标准的安全文件传输协议 (SFTP)客户端和管理员访问您的服务器即可。
在这篇文章中,我们将看看如何解决“413 Request Entity Too Large”错误。我们还将为您提供在开始解决错误之前要采取的步骤的快速列表,以使该过程超级简单。
413请求实体太大报错(413 Request Entity Too Large)这个报错不太多见,但并不代表它不存在。错误的本质非常清晰,即客户端所请求的实体,比如上传的文件超出限制所致。
既然知道这个错误的问题所在,那么我们需要做哪些应对措施以修复此报错就非常简单了。
这篇文章将详细说明该错误的本质及提出错误修复的解决方案:
- “413请求实体太大”错误是什么(以及它存在的原因)
- 解决“413请求实体太大”错误需要什么
- 在纠正“413 请求实体太大”错误之前可以采取的“准备步骤”
- 如何为您的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主页
在大多数情况下,会进行一些验证来阻止错误……如果您看到“413 Request Entity Too Large”错误,那么这些验证工作可能不像您想象的那样无懈可击。
修复414 Request-URI Too Large错误需要什么
如果您过去遇到过413 Request Entity Too Large错误,您会发现类似的414错误。当然,这些名称显示了它们的相似之处,因为它们在官方标准中彼此相邻并且具有几乎相同的描述。
鉴于此,您用于修复413的工具和技能列表也将与414相同:
- 对您的服务器的管理访问权限
- 众多可用的安全文件传输协议 (SFTP) 客户端之一
- 使用SFTP和导航服务器的正确技能
- 手头有一个干净的最新备份,以防您需要恢复
- 一个文本编辑器,尽管这对您来说可能不是必需的
在纠正“413请求实体太大”错误之前可以采取的“准备步骤”
在您打开工具箱之前,您可以采取一些步骤来帮助解决“413 Request Entity Too Large”错误。这里有两个——每个都可以为您提供一个受欢迎的解决方法。
1.尝试通过SFTP将大文件上传到您的服务器
因为这个问题与服务器的文件大小有关,所以最好绕过前端接口并自己将大文件上传到服务器。最好的方法是通过SFTP。
这是因为就访问服务器的方式而言,诸如SFTP之类的协议几乎与您所能获得的一样“接近骨子里”。此外,您可以同时排除任何可能导致错误的前端问题。
为此,请通过SFTP登录您的站点并找到wp-content文件夹。在这里将是上传文件夹。
从SFTP客户端看到的上传文件夹
接下来,将你的文件上传到服务器上的这个文件夹,看看结果如何。如果上传成功,我们建议向网站的开发人员发送电子邮件,因为他们可能希望在前端进一步调查问题。
2.检查服务器权限错误
当然,权限错误会阻止任何服务器请求运行。因此,您应该检查用户是否有足够的权限上传任何大小的文件。排序后,错误应该消失。
第一步是确定这是否是单个用户的问题(在这种情况下,他们可能由于某种原因受到限制)。如果多个用户出现“413 Request Entity Too Large”错误,您可以更加确定需要您输入的内容。
我们在这里建议两个“预修复”:
- 仔细检查您的WordPress文件权限,以防万一出现问题。
- 删除并重新创建您的SFTP用户(一般调查是个好主意)。
虽然他们可能无法在一开始就解决错误,但您至少会知道您的文件和用户结构是应有的。
修复413 Request Entity Too Large
错误
完成前期步骤后,您就可以正面解决错误了。
以下三种方法从最简单到最困难列出,理解为阻力最小的路径是最好的路径。
1. 编辑您的WordPress functions.php文件
首先,您可以使用您的functions.php文件来帮助增加您网站的文件上传大小。为此,首先使用主机控制面板中的凭据通过SFTP登录您的站点。
当您进入时,您会想要查找文件本身。functions.php文件应该位于服务器的根目录中。在许多情况下,此根称为www或public_html,或者它可能是您网站的缩写名称。
找到它后,您可以在您选择的文本编辑器中打开它。如果您没有看到该文件,您可以使用文本编辑器创建它。
打开文件后,输入以下内容:
@ini_set( '_max_size' , '64M' ); @ini_set( 'post_max_size', '64M'); @ini_set( 'max_execution_time', '300' );
简而言之,这增加了帖子和上传的最大文件大小,同时增加了服务器尝试处理请求的时间。这里的数字可以是你想要的任何数字,但它们应该足够大以使错误消失。实际上,除了最繁重的任务之外,64MB就足够了。
functions.php文件
准备好后,保存文件并再次将其上传到服务器。然后,检查“413 Request Entity Too Large”错误是否仍然存在。如果是这样,请转到下一个方法。
2. 修改您的WordPress .htaccess文件
就像您的functions.php文件一样,您的.htaccess文件位于您的服务器上。这里的区别在于.htaccess是Apache服务器的配置文件。
不过,对于那些拥有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文件
完成后,保存更改,上传文件,然后再次检查您的站点。如果您仍然遇到问题,我们再次建议您联系您的房东,因为他们需要验证您设置的某些方面,这些方面超出了本文的范围。
此外,对于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
评论留言