如何修復將影象上傳到WordPress媒體庫時提示HTTP Error

錯誤型別:
WP內部錯誤
錯誤名稱:
HTTP错误
英文名稱:
HTTP Error
錯誤描述:
当尝试使用内置媒体库工具上传图像或视频时出现问题时,会发生WordPress HTTP错误。不幸的是,与我们通常可以引用HTTP状态代码的浏览器错误不同,WordPress错误有时更难解决(特别是如果您不知道如何启用WordPress调试模式)。

如何修復將影象上傳到WordPress媒體庫時提示HTTP Error

與任何平臺一樣,總會有那些煩人的錯誤或問題,您必須學習如何解決。相信我們,我們幾乎都見過他們!從死亡白屏資料庫連線錯誤,WordPress肯定有它的怪癖。但我們仍然喜歡它!今天我們將深入探討一種更常見的問題,即HTTP錯誤。使用者在嘗試將影象或視訊上傳到WordPress媒體庫時通常會遇到這種情況。

雖然HTTP錯誤通常很容易修復,但它可能會令人沮喪,因為它通常會中斷您的工作流程。沒有什麼比花20分鐘試圖為您的部落格文章找到完美影象更糟糕的了,您去上傳它,然後砰,您突然遇到了一個非常模糊的錯誤。

下面我們將探討發生此錯誤的原因以及您可以採取哪些措施來快速解決該錯誤,以便您可以重新上傳媒體。

什麼是HTTP Error?

當嘗試使用內建媒體庫工具上傳影象或視訊時出現問題時,會發生WordPress HTTP錯誤。不幸的是,與我們通常可以引用HTTP狀態程式碼的瀏覽器錯誤不同,WordPress錯誤有時更難解決(特別是如果您不知道如何啟用WordPress除錯模式)。

非常含糊的“HTTP Error”絕對不能幫助您確定可能出錯的地方,甚至無法確定從哪裡開始查詢。但那是因為失敗可能有幾個原因,而WordPress根本不知道為什麼,所以它會吐出一條通用錯誤訊息(如下所示)。

上傳圖片時WordPress提示HTTP Error

上傳圖片時WordPress提示HTTP Error

如何修復WordPress網站HTTP Error

根據我們的經驗,WordPress HTTP錯誤通常源於兩個方面:第一個是客戶端或使用者錯誤 (您的登入會話、檔名中的錯誤字元等),第二個是您的WordPress主機 (伺服器問題、記憶體列表、第三方外掛、共享主機限制資源等)。所以我們將深入探討兩者。

以下是修復錯誤的一些建議和檢查事項(按我們看到的最常見原因排序):

  1. 重新整理頁面
  2. 縮小或調整檔案大小
  3. 重新命名影象檔案
  4. 暫時停用外掛和主題
  5. 詢問您的WordPress主機
  6. 增加PHP記憶體限制
  7. 檢查上傳資料夾許可權
  8. 移至最新版本的PHP
  9. 修復Imagick和共享主機的效能問題
  10. 刪除自定義媒體庫路徑
  11. 禁用mod_security
  12. 安裝新增到伺服器外掛

1.重新整理頁面

遇到WordPress HTTP錯誤時,您應該做的第一件事就是在瀏覽器中重新整理頁面。聽起來太容易了吧?嗯,實際上這是我們見過的最常見的修復方法。原因如下:

首先,無論出於何種原因,您的瀏覽器可能暫時失去了與WordPress的連線,並且該過程根本無法完成。這可能是由於您的ISP、您的WordPress主機的臨時故障等。如果您重新整理頁面並嘗試再次上傳,錯誤有時會自行解決。

其次,我們還看到有時在重新整理頁面或從另一個選項卡返回WordPress編輯器後,它會突然將您踢出局。這很可能表明您的WordPress登入會話已過期。您應該會看到以下訊息:

您的會話已過期。請登入以從上次停止的地方繼續。

您的會話已過期

您的會話已過期

很自然地,您重新登入並嘗試再次上傳您的媒體。但是,發生HTTP錯誤。這是WordPress的一個怪癖。重新登入後,您實際上需要手動重新整理您所在的頁面。然後上傳媒體將再次工作。

2. 縮小或調整檔案大小

您可能需要編輯影象檔案,這可能需要減小檔案大小(KB或MB)或減小寬度/高度(畫素)。我們建議檢視我們關於如何優化影象的深入文章。當您的影象上傳到媒體庫時,您可以使用許多第三方影象優化外掛來自動執行此操作(縮小和調整大小)。

您可以使用Imagify,一款很不錯的外掛。但也有很多其他可選。只需確保無論您使用哪個外掛,它們都是在自己的伺服器上優化影象,而不是在本地。如果您在本地批量優化影象,這可能會嚴重損害您網站的效能。

WordPress外掛-Imagify

WordPress外掛-Imagify

上傳高解析度影象是可以的,因為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主題。

如果您不想影響您的實時站點,只需將您的實時站點克隆到臨時環境即可。如果登臺時也發生WordPress HTTP錯誤,那麼您可以快速停用所有外掛以開始縮小範圍。

請記住,如果您只是停用外掛,您不會丟失任何資料。如果您仍然可以訪問您的管理員,一個快速的方法是瀏覽到“外掛”並從批量操作選單中選擇“停用”。這將禁用您的所有外掛。

停用所有外掛

停用所有外掛

如果這解決了問題,您將需要找到罪魁禍首。開始一一啟用它們,然後嘗試再次在媒體庫中上傳影象。當您看到HTTP錯誤返回時,您就發現了行為不端的外掛。然後,您可以聯絡外掛開發人員尋求幫助或在WordPress外掛庫中釋出支援工單。

如果您無法訪問WordPress管理後臺,您可以通過FTP進入您的伺服器並將您的外掛資料夾重新命名為plugins_old. 然後再次檢查您的網站。如果它有效,那麼您將需要一個一個地測試每個外掛。將您的外掛資料夾重新命名回plugins,然後將if it中的每個外掛資料夾重新命名,直到找到為止。您也可以先嚐試在臨時站點上覆制此內容  。

重新命名外掛資料夾

重新命名外掛資料夾

您的WordPress主題也是如此。通常主題不與媒體庫相關聯,但我們已經看到了一些奇怪的設定。嘗試將您的主題切換到預設的二〇二二主題以檢視它是否修復它永遠不會有什麼壞處。就像使用外掛一樣,您不必擔心丟失當前的主題設定。所有這些都儲存在WordPress資料庫中。

5. 詢問您的WordPress主機

如果您已經嘗試了上述步驟但仍然收到WordPress HTTP錯誤,我們建議您在繼續之前聯絡您的WordPress主機尋求幫助。許多額外的故障排除步驟都更高階一些,很多時候您可以要求您的主機為您執行或檢查。

6.增加PHP記憶體限制

導致WordPress HTTP錯誤的另一個原因是您的伺服器缺乏用於後臺上傳過程成功完成的可用記憶體。這是共享 WordPress 託管的一個非常常見的問題。要修復它,您需要增加PHP可以使用的記憶體量, 建議使用256 MB。

使用wp-config.php增加PHP記憶體限制

您可以通過將以下程式碼新增到您的檔案wp-config.php增加PHP記憶體限制。注意:這可能會被您的WordPress主機的伺服器級規則覆蓋。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MEMORY_LIMIT', '256M' );

增加cPanel中的PHP記憶體限制

如果您的主機使用cPanel,您可以在兩個不同的方法增加PHP記憶體限制

第一個是在軟體部分下。單擊“選擇PHP版本”。單擊“切換到PHP選項”。然後您可以單擊“memory_limit”來更改其值。

第二個也是也在軟體部分下。單擊“MultiPHP INI編輯器”工具。這允許您修改php.ini檔案。只需向下滾動到顯示“memory_limit”的位置並輸入更高的值。

增加cPanel中的PHP記憶體限制

增加cPanel中的PHP記憶體限制

使用php.ini增加PHP記憶體限制

如果您不使用cPanel,您也可以php.ini直接編輯檔案(如果您有訪問許可權)。為此, 請通過FTP或SSH登入到您的站點,轉到站點的根目錄並開啟或建立一個php.ini檔案。

無法通過SSH連線?瞭解如何修復SSH“連線被拒絕”錯誤

如果該檔案已經存在,請搜尋“memory_limit”設定並根據需要進行修改。

某些共享主機可能還要求您在.htaccess檔案中新增suPHP指令以使上述php.ini檔案設定生效。為此,請編輯.htaccess同樣位於站點根目錄下的檔案,並將以下程式碼新增到檔案頂部:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<IfModule mod_suphp.c>
suPHP_ConfigPath /home/yourusername/public_html
</IfModule>
<IfModule mod_suphp.c> suPHP_ConfigPath /home/yourusername/public_html </IfModule>
<IfModule mod_suphp.c> 
suPHP_ConfigPath /home/yourusername/public_html
</IfModule>

使用 .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上傳目錄許可權

WordPress上傳目錄許可權

8. 遷移到最新版本的PHP

WordPress官方推薦PHP 7.3或更高版本。如果您沒有執行它,那麼您就低於CMS開發人員設定的最低要求。

我們始終建議執行最新和受支援的PHP版本,因為它提供了更好的安全性和效能,包括錯誤修復和需要棄用的功能。

我們已經看到舊版本的PHP導致各種錯誤,包括臭名昭著的WordPress HTTP錯誤。在寶塔面板,您只需在寶塔面板儀表盤左側“網站”選單,找到你需要切換PHP版本的網站,然後點選“設定”操作。

寶塔面板網站管理

寶塔面板網站管理

在彈出視窗中,點選PHP版本,然後在PHP版本下拉選單中選擇你所需的版本即可。

寶塔面板切換PHP版本

寶塔面板切換PHP版本

如果您的主機使用cPanel,他們可能已經為您提供了一個選項來更改您的PHP版本。只需登入cPanel,然後在“軟體”類別下單擊“選擇PHP版本”。

選擇PHP版本

選擇PHP版本

然後,您可以選擇您的主機支援的可用PHP版本。

cPanel中的PHP 7

cPanel中的PHP 7

9. 修復Imagick和共享主機的效能問題

WordPress有兩種不同的PHP模組用於影象處理:GD Library和Imagick (ImageMagick)。根據您的伺服器上安裝的內容,WordPress可能會使用任何一種。

問題是共享的WordPress主機在幕後有很多隱藏的資源限制。這是他們在同一臺機器上塞滿這麼多使用者的唯一方法。人們遇到的一個常見問題是分配給Imagick (ImageMagick) 的資源太少。主機將限制使用多執行緒的能力,從而導致WordPress HTTP錯誤。

您可以將以下程式碼新增到 的頂部.htaccess file,將執行緒限制值更改為更高的值。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
MAGICK_THREAD_LIMIT 1
MAGICK_THREAD_LIMIT 1
MAGICK_THREAD_LIMIT 1

您的另一個選擇是告訴WordPress使用GD庫而不是Imagick。您只需將以下程式碼新增到您的主題functions.php檔案即可。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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’ );
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’ );
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儀表盤中“設定”下的“媒體”並看到列出的檔案路徑值,請繼續刪除它並單擊“儲存更改”。您希望將媒體儲存在預設/wp-content/uploads資料夾中。

下面是它通常的樣子。如果您沒有看到庫路徑,那麼您在這裡都很好。

WordPress媒體設定

WordPress媒體設定

11. 禁用mod_security

Mod_security是一個開源防火牆,有時可能會導致WordPress HTTP錯誤發生。您可以通過將以下程式碼新增到.htaccess檔案頂部來禁用mod_security 。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
<IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
<IfModule mod_security.c> 
SecFilterEngine Off 
SecFilterScanPOST Off 
</IfModule>

如果您使用的是cPanel,您還可以通過單擊“安全”部分中的“ModSecurity”來禁用它。

cPanel ModSecurity

cPanel ModSecurity

然後將狀態從“開啟”切換到要禁用它的域旁邊的“關閉”。

禁用mod_security

禁用mod_security

我們始終建議使用企業級且價格合理的WAF,如Sucuri或Cloudflare。

12.安裝Add From Server外掛

最後但並非最不重要的一點是,如果您真的陷入困境並且似乎沒有其他任何工作,您可以安裝免費的Add From Server 外掛。也許您正在等待WordPress主機或開發人員關於如何解決WordPress HTTP錯誤的響應。

WordPress外掛-Add From Server

WordPress外掛-Add From Server

新增到伺服器外掛通常會讓您繞過錯誤,並且可能是一個很好的臨時修復,特別是如果您正處於重要事情的中間。它最初的開發目的是允許您通過SFTP新增非常大的檔案。 重要提示:此外掛不再維護或支援。使用風險自負。

小結

如您所見,有多種不同的方法可以修復WordPress HTTP錯誤。希望上述解決方案之一對您有用,並且您已經回到正軌並上傳媒體。如果您一次又一次地繼續收到此錯誤,則可能是時候考慮升級到更好的WordPress主機了。

評論留言