如何修復WordPress HTTP錯誤(將圖像上傳到媒體庫)

與任何平台一樣,您始終必須學習那些煩人的錯誤或問題,以了解如何工作。相信我們,我們幾乎都看到了他們!從死亡的白屏到資料庫連接錯誤,WordPress肯定有其怪癖。?但是我們仍然喜歡它!今天,我們將深入探討一種更常見的 HTTP錯誤。用戶通常在嘗試將圖像或視頻上傳到WordPress媒體庫時遇到此問題。

雖然HTTP錯誤通常很容易修復,但由於它通常會打斷您的工作流程,因此可能會令人沮喪。沒有什麼比花20分鐘來嘗試為您的博客文章找到完美的圖片更糟糕的了,您去上傳了圖片,然後ba,您突然遇到了一個非常模糊的錯誤。

下面,我們將探討為什麼會發生此錯誤,以及如何解決該錯誤,以便您可以重新上傳媒體。

什麼是WordPress HTTP錯誤?

嘗試使用內置媒體庫工具上載圖像或視頻時出現問題時,會發生WordPress HTTP錯誤。不幸的是,與通常可以引用HTTP狀態代碼的瀏覽器錯誤不同,WordPress錯誤有時更難解決(特別是如果您不知道如何啟用WordPress調試模式時)。

非常模糊的「 HTTP錯誤」絕對不能幫助您確定可能出問題的地方,甚至不能從哪裡開始尋找。但這是因為可能有幾種原因導致失敗,而WordPress根本不知道為什麼,所以它吐出了一條通用錯誤消息(如下所示)。

上載圖片時出現WordPress HTTP錯誤

上載圖片時出現WordPress HTTP錯誤

如何修復WordPress HTTP錯誤

根據我們的經驗,WordPress HTTP錯誤通常源於兩件事:第一是 客戶端或用戶錯誤 (您的登錄會話,文件名中的錯誤字元等),第二是 問題或您的設置WordPress主機 (伺服器問題,內存列表,第三方插件,共享的主機限制資源等)。因此,我們將深入探討兩者。

以下是一些建議和要糾正錯誤的檢查內容(按我們看到的最常見原因排序):

1.刷新頁面

遇到WordPress HTTP錯誤時,您要做的第一件事就是簡單地刷新瀏覽器中的頁面。聽起來太容易了吧??好吧,實際上這是我們所見過的最常見的修復方法。原因如下:

首先,無論出於何種原因,您的瀏覽器可能暫時失去了與WordPress的連接,並且該過程完全無法完成。這可能是由於您的ISP,與WordPress主機之間的暫時性故障等引起的。如果刷新頁面並再次嘗試上載頁面,則錯誤有時會自行解決。

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

您的會話已過期。請登錄以從上次中斷的地方繼續。

您的會話已過期

您的會話已過期

很自然,您重新登錄並嘗試再次上傳媒體。但是,發生HTTP錯誤。這有點像WordPress。重新登錄後,您實際上需要手動刷新正在瀏覽的頁面。然後,上傳媒體將再次起作用。

2.縮小或調整文件大小

您可能需要編輯圖像文件,這可能需要減小文件大小(KB或MB)或減小寬度/高度(像素)。我們建議您查看有關如何優化網路圖像的深入文章。當您將圖像上傳到媒體庫時,有很多第三方圖像優化插件可用於自動為您執行此操作(縮小和調整大小)。

我們在Kinsta網站上使用 Imagify已有數年之久,沒有一個問題。但是,還有很多其他偉大的公司。只要確保您使用的是哪個插件,它們都可以在自己的伺服器(而不是本地)上優化映像。如果您要在本地批量優化圖像,則可能會嚴重損害您網站的性能。

想像一下WordPress插件

想像一下WordPress插件

可以上傳高解析度圖像,因為WordPress支持開箱即用的響應圖像。實際上,您可能需要這樣做,以便使圖像在視網膜顯示屏上看起來清晰。但是,除非您的攝影師或企業需要高解析度圖像,否則最好的經驗法則是將最終圖像大小保持在100 KB以下,並且大小不超過網站內容div寬度的兩倍。

另外,您可能必須使用PNG和JPG文件類型。有時一個圖像可能比另一個圖像大得多,具體取決於圖像的類型。

根據WordPress主機的配置,您可能還需要考慮增加WordPress的最大上傳文件大小

3.重命名圖像文件

嘗試重命名映像文件永遠不會受到傷害。如果您嘗試上傳重複的文件名,則WordPress應該在末尾自動添加一個數字,但是如果這樣做不起作用,請嘗試重命名文件。不幸的是,WordPress不允許您重命名已經上傳的圖像文件的文件,因此您需要在本地重命名並重新上傳。

當我們上傳已經存在的圖像時,通常在末尾添加-1或-2(例如:image-file-1.png,image-file-2.png)。確保添加破折號,否則Google會將其讀為一個單詞,這可能會損害您的SEO

另外,為了安全起見,請勿上傳文件名包含特殊字元的圖像。這包括國際語言符號和字元,例如撇號。破折號還可以。您可以在下面的Kinsta日語網站上的此示例中看到,我們使用英文作為文件名,而不是特殊字元。儘管WordPress可以在技術上支持這些功能,但還有許多其他問題可能會彈出。

重命名沒有特殊字元的圖像文件

重命名沒有特殊字元的圖像文件

4.暫時停用插件和主題

如果您遇到HTTP錯誤以嘗試停用插件,甚至將WordPress主題切換為默認值以查看是否可以解決問題,那麼這總是一個好主意。一些典型的罪魁禍首包括圖像優化插件(它們直接綁定到媒體庫中)和安全性插件(如WordFence)(這些插件有時過於嚴格)。或者,您可以簡單地刪除WordPress主題

如果您不想影響實時站點,只需將實時站點克隆到暫存環境。如果分階段也發生WordPress HTTP錯誤,那麼您可以快速 停用所有插件以縮小範圍。

請記住,如果您僅停用插件,就不會丟失任何數據。如果您仍然可以訪問管理員,執行此操作的快速方法是瀏覽至「插件」,然後從批量操作菜單中選擇「停用」。這將禁用所有插件。

停用所有插件

停用所有插件

如果這樣可以解決問題,則需要找到罪魁禍首。開始一個接一個地激活它們,然後嘗試再次將圖像上載到媒體庫中。當看到HTTP錯誤返回時,您發現了行為異常的插件。然後,您可以聯繫插件開發人員尋求幫助,或在WordPress存儲庫中發布支持票證。

如果您無法訪問管理員,則可以通過FTP進入伺服器,然後將plugins文件夾重命名為plugins_old。然後再次檢查您的站點。如果可行,則需要一個接一個地測試每個插件。重命名您的插件文件夾plugins,然後逐個重命名其中的每個插件文件夾,直到找到為止。您也可以先嘗試在臨時站點上複製此文件  。

重命名插件文件夾

重命名插件文件夾

WordPress主題也是如此。通常,主題與媒體庫無關,但是我們已經看到了一些奇怪的設置。嘗試將您的主題切換到默認的「二十十七歲」主題以查看是否可以解決該問題,這無濟於事。就像插件一樣,您不必擔心丟失當前的主題設置。所有這些都存儲在WordPress資料庫中

5.詢問您的WordPress主機

如果您已經嘗試了上述步驟,但仍然收到WordPress HTTP錯誤,建議在繼續操作之前先向WordPress主機尋求幫助。許多其他的故障排除步驟要高級一些,很多時候您可以要求主機為您做一遍或進行檢查。

從MyKinsta儀錶板的右下角可以看到Kinsta的支持團隊24×7。

Kinsta WordPress託管支持

Kinsta WordPress託管支持

6.增加PHP內存限制

WordPress HTTP錯誤的另一個原因是您的伺服器缺少可用內存,無法成功完成後台上傳過程。這是共享WordPress託管的一個非常普遍的問題。要解決此問題,您需要增加PHP可以使用的內存量。 建議使用256 MB。

Kinsta客戶端的默認內存限制已設置為256 MB。如果將您的WordPress網站託管在Kinsta,那麼內存不足應該不會有任何問題。?

使用wp-config.php增加PHP內存限制

您可以通過將以下代碼添加到文件中來增加PHP內存限制wp-config.php。注意:您的WordPress主機可能已採用伺服器級規則覆蓋了該規則。

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位於站點根目錄下的文件,並在文件頂部添加以下代碼:

<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開發人員設置的最低要求。?

遇到停機和WordPress問題嗎?Kinsta是旨在節省您時間的託管解決方案!查看我們的功能

我們總是建議運行最新的受支持的PHP版本,因為它提供了更好的安全性和性能,其中包括不建議使用的錯誤修復和功能。

我們已經看到PHP的舊版本會導致各種錯誤,包括臭名昭著的WordPress HTTP錯誤。在Kinsta上,只需 單擊MyKinsta儀錶板即可輕鬆更改為PHP 7.4

更改為PHP 7.4

更改為PHP 7.4

如果您的主機使用cPanel,則他們可能已經可以使用一個選項來更改PHP版本。只需登錄到cPanel,然後在「軟體」類別下,單擊「選擇PHP版本」。

選擇PHP版本

選擇PHP版本

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

PHP 7的cpanel

cPanel中的PHP 7

9.解決Imagick和共享主機的性能問題

WordPress使用兩種不同的PHP模塊進行圖像處理:GD庫和Imagick(ImageMagick)。根據伺服器上安裝的內容,WordPress可能會使用其中一種。

問題在於共享的WordPress主機在後台隱藏了很多隱藏的資源。這是他們可以在同一台計算機上容納這麼多用戶的唯一方法。人們遇到的一個常見問題是分配給Imagick(ImageMagick)的資源太少。主機將限制使用多個線程的能力,從而導致WordPress HTTP錯誤。

您可以將以下代碼添加到您的頂部.htaccess file,將線程限制值更改為更高的值。

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主機了。Kinsta沒有這樣的瘋狂限制,並且在大多數情況下,您僅受PHP worker的限制。作為網站所有者,您不必擔心這些類型的事情。

我們為每個站點利用LXD託管主機和精心編排的LXC軟體容器。這意味著每個WordPress網站都位於其自己的隔離容器中,該容器具有運行它所需的所有軟體資源(Linux,Nginx,PHP,MySQL)。資源是100%私有的,不會在其他任何人甚至您自己的站點之間共享

了解更多有關Kinsta與您嘗試過的其他主機的不同之處。

10.刪除自定義媒體庫路徑

很有可能是您的媒體庫路徑未正確設置。當用戶將其本地開發站點遷移到生產環境時,通常會看到這種情況。如果您在WordPress信息中心的「設置」下的「媒體」中查看並看到列出的文件路徑值,請繼續刪除它,然後單擊「保存更改」。您希望將媒體存儲在默認/wp-content/uploads文件夾中。

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

WordPress媒體設置

WordPress媒體設置

11.禁用mod_security

Mod_security是一種開源防火牆,有時可能會導致WordPress HTTP錯誤發生。您可以通過在.htaccess文件頂部添加以下代碼來禁用mod_security 。

<IfModule mod_security.c>
SecFilterEngine關閉
SecFilterScanPOST關閉
</ IfModule>

如果您使用的是cPanel,也可以通過單擊「安全性」部分中的「 ModSecurity」將其禁用。

cPanel ModSecurity

cPanel ModSecurity

然後將要禁用它的域旁邊的狀態從「打開」切換為「關閉」。

禁用mod_security

禁用mod_security

我們始終建議您使用企業級且價格適中的WAF(例如SucuriCloudflare)代替。您可以在此處閱讀有關最佳WAF設置的建議。

12.安裝從伺服器添加插件

最後但並非最不重要的一點是,如果您確實處於綁定狀態,並且似乎沒有其他工作,則可以安裝免費的「從伺服器添加」 插件。也許您正在等待WordPress主機或開發人員對如何解決WordPress HTTP錯誤做出回應。

從伺服器添加WordPress插件

從伺服器添加WordPress插件

「添加到伺服器」插件通常會帶您解決錯誤,並且可能是一個不錯的臨時解決方法,尤其是在您遇到重要問題的時候。它最初是為了允許您通過SFTP添加非常大的文件而開發的。 重要提示:該插件已不再維護或受支持。使用風險自負。

相關文章