WordPress async-upload.php возвращает 500 (внутренняя ошибка сервера) после загрузки большого файла JPG

Я получаю HTTP Error сообщение при загрузке большого файла JPG (около 30 — 40 МБ), и я вижу 500 Internal Server Error ответ на вкладке сети инструментов разработчика Chrome, возвращаемый async-upload.php,

Ошибка появляется после загрузки файла. Я могу увидеть файл в wp-content/uploads каталог, поэтому проблема не связана с процессом загрузки.

Я полагаю, что проблема связана с процессом изменения размера изображений, который происходит после загрузки файла. Я попытался восстановить эскизы вручную (используя несколько плагинов регенерации эскизов), чтобы доказать, что проблема связана с процессом изменения размера. Все они не смогли изменить размер большого изображения.

Вещи, которые я сделал до публикации этого вопроса:

  • Я увеличил лимит памяти до 256 МБ в php.ini файл (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.

Поэтому я установил PHP-расширение Image Magic, чтобы попробовать. Я также удалил фильтр, потому что это значение по умолчанию работает для меня.

Замена библиотеки GD на Image Magic решила проблему., но мне все еще любопытно, почему библиотека GD не может обрабатывать такие большие изображения. Есть ли способ решить эту проблему по-другому? Я не хочу зависеть от сторонних библиотек. Я бы предпочел использовать стандартную настройку PHP (в случае развертывания сайта на общем хостинге, где невозможно установить пользовательские расширения PHP).

1

Решение

Если вы обновили версию PHP. Это может привести к тому, что старый плагин сделает это. То же самое случилось со мной. Я обновил php 5.6 до PHP 7, и произошла та же ошибка. Когда я переустановил PHP 5.6, он начал работать нормально.

3

Другие решения

Это ошибка сервера. Если вы не изменили php.ini или .htacess, попробуйте Загрузить файл PNG. Эти трюки работают на меня!

введите описание изображения здесь

-2

По вопросам рекламы [email protected]