2016-05-06 10 views
1

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

Ошибка появляется после загрузки файла. Я вижу файл в каталоге 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']; 
    }); 
    

UPDATE:

Я только что понял, что фильтр, который я применил, ничего не сделал. Я проверил исходный код WP и нашел, что значение по умолчанию для этого фильтра: ['WP_Image_Editor_Imagick', 'WP_Image_Editor_GD']. Я изменил порядок, но у меня не было библиотеки Magic Magic, поэтому WordPress все равно использует библиотеку GD.

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

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

+0

Проверьте свои ошибки на наличие ошибок.Потенциальным кандидатом является то, что у PHP закончилась нехватка памяти. – Halcyon

+0

Боюсь, это не проблема с памятью. Я даже пытался увеличить лимит памяти до 512. В журнале ошибок ничего нет. Я проверяю оба файла: Apache и PHP. Я только что обновил свой предыдущий пост. Я нашел обходное решение - помог помочь замена библиотеки GD с помощью Image Magick. – wube

+0

Это ничего не доказывает, возможно, требуется GD 513mb. Проверьте журнал ошибок, и вы точно знаете, что произошло. – Halcyon

ответ

2

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

0

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

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^