簡體   English   中英

上傳大型 JPG 文件后,WordPress async-upload.php 返回 500(內部服務器錯誤)

[英]WordPress async-upload.php returns 500 (Internal Server Error) after uploading a large JPG file

我在上傳大 jpg 文件(大約 30 - 40MB)時收到HTTP Error消息,我可以在async-upload.php返回的 Chrome 開發工具網絡選項卡中看到500 Internal Server Error響應。

文件上傳后出現錯誤。 我可以在wp-content/uploads目錄下看到文件,所以問題與上傳過程無關。

我想問題與上傳文件后發生的圖像大小調整過程有關。 我嘗試手動重建縮略圖(使用幾個重新生成縮略圖插件)以證明問題與調整大小過程有關。 他們都未能調整大圖像的大小。

我在發布這個問題之前做過的事情:

  • 我已將php.ini文件中的內存限制增加到 256MB ( memory_limit = 256M )
  • 設置post_max_size = 256M
  • 設置一個新的 WP 實例。 沒有插件,默認主題。
  • 在不同的機器上測試(在 VPS 上,相同的 PHP 設置)
  • 我已經關閉了mod_security設置:

     <IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
  • 我還嘗試更改默認圖像庫:

     add_filter('wp_image_editors', function () { return ['WP_Image_Editor_GD', 'WP_Image_Editor_Imagick']; });

更新:

我剛剛意識到我應用的過濾器沒有做任何事情。 我檢查了 WP 源代碼,發現此過濾器的默認值為: ['WP_Image_Editor_Imagick', 'WP_Image_Editor_GD'] 我改變了順序,但我沒有安裝 Image Magic 庫,所以 WordPress 一直在使用 GD 庫。

所以我安裝了 Image Magic PHP 擴展來試一試。 我還刪除了過濾器,因為它的默認值對我有用。

用 Image Magic 替換 GD 庫解決了這個問題。 ,但是我還是很好奇為什么GD庫不能處理這么大的圖片。 有沒有辦法以不同的方式解決這個問題? 我不想依賴第三方庫。 我寧願使用標准的 PHP 設置(如果將站點部署在無法安裝自定義 PHP 擴展的共享主機上)。

如果您升級了 PHP 版本。 這可能會導致舊插件這樣做。 同樣的事情發生在我身上。 我將 php 5.6 升級到 PHP 7 並且發生了同樣的錯誤。 當我重新安裝 PHP 5.6 時,它開始正常工作。

試試這個:

wp-config.php改變這個:

define( 'WP_DEBUG', false);

define( 'WP_DEBUG', true );

對我有用!

我已經嘗試了大部分可能仍然無法正常工作的東西,畢竟我已經檢查了插件文件夾已禁用並檢查其是否對我有用的研究,請一一禁用插件並檢查。 這對我有用。 謝謝:)

您可以重命名為插件文件夾名稱( plugins 到 plugins_old )

謝謝

這是服務器BUG。 如果您不更改 php.ini 或 .htacess,請嘗試上傳 PNG 文件。 這個技巧對我有用!

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM