[英]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
我已經關閉了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 )
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.