- 錯誤型別:
- HTTP錯誤
- 錯誤名稱:
- 413 请求实体太大
- 英文名稱:
- 413 Request Entity Too Large
- 錯誤描述:
- 413请求实体太大报错(413 Request Entity Too Large)这个报错不太多见,但并不代表它不存在。错误的本质非常清晰,即客户端所请求的实体,比如上传的文件超出限制所致。
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
評論留言