Wordpress: "Ошибка HTTP". При загрузке файлов

Я запускаю WP 3.0.1 на общем хосте, используя PHP5. У меня возникают проблемы с загрузкой файлов, которые немного больше через загрузчик мультимедиа в разделе администрирования WP.

Каждый раз, когда я пытаюсь загрузить файл размером более нескольких мегабайт, он загружается, говорит о его хрусте, а затем дает мне большую красную "HTTP-ошибку". - ничего более.

Это происходит только в файлах, которые немного больше, то есть в файле размером 20 МБ. Кажется, что файл размером 5 Мб работает нормально. Странно, что в прошлом мы загрузили 40-мегабайтные файлы без проблем.

-

Вот шаги, которые я предпринял до сих пор, чтобы попытаться исправить ситуацию:

  • Двойной проверенный php.ini, чтобы увеличить загрузку, публикацию и объем памяти были достаточно высокими.
  • Обновлен .htaccess, чтобы включить фильтр, который был найден мной в другом месте.
  • Двойной проверял все права доступа к файлам через ftp, чтобы убедиться, что они были 755.
  • Вызов хоста - "Они не поддерживают сторонние скрипты" (я ненавижу IPower)
  • Пробовал с различными аудиофайлами аналогичного размера.
  • Отключить все плагины

-

У вас, ребята, есть еще идеи относительно того, что может вызвать неопределенную "HTTP-ошибку". проблема?

Спасибо заранее.

Ответ 1

Проблема, как вы уже определили, связана с размером загрузки файла. Напомню, что HTTP не создан для передачи больших файлов... он может это сделать, но не всегда, и не очень хорошо. У вас запущена проблема, когда ваш хост отключает передачу, потому что файл слишком велик. Скорее всего, это сервер, где у вас нет доступа.

Поскольку "они не поддерживают сторонние скрипты", я предполагаю, что вы находитесь в среде совместного размещения, поэтому на вашем сервере что-то может измениться, если вы ничего не делаете. Возможные решения:

  • Получить другой хост
  • Использовать выделенный сервер
  • Перенести большие файлы через FTP, а не из WordPress.

Ответ 2

У меня была аналогичная проблема с Nginx и PHP5-FPM (и WordPress 4.1).

Симптомы: файл (< 5MB, так относительно небольшой) частично передается через передачу, как указано индикатором выполнения, когда вы получаете сообщение об ошибке HTTP.

Даже если вы установили upload_max_filesize в свой php.ini, вы также должны проверить post_max_size как минимум. Не забудьте перезапустить php5-fpm.

Если он все еще не работает, отредактируйте файл nginx.conf (в Debian/Ubuntu it/etc/nginx/nginx.conf) и добавьте его в блок http:

client_max_body_size 100m;

Затем перезапустите Nginx.

Ответ 3

У одного из наших клиентов была такая же проблема.

Наконец, мы выяснили, что wordpress "Ошибка HTTP" при загрузке изображений происходило из-за изменения на стороне сервера. Хостинг-компания решила добавить ускорение APC на сервер, чтобы повысить стабильность и скорость сервера. Ускорение APC должно работать только с FastCGI, а не с su, поэтому они устанавливают PHP как FastCGI.

При использовании PHP в качестве FastCGI, если вы пытаетесь загрузить файл размером более 128 КБ, возникает ошибка "mod_fcgid: длина запроса HTTP 131388 (до сих пор) превышает MaxRequestLen (131072)" и вызывает ошибку внутреннего сервера 550. Это происходит потому, что значение директивы MaxRequestLen по умолчанию установлено на 131072 байта (128 КБ). Один из способов исправить это (если сервер использует Plesk), - отредактировать /etc/httpd/conf.d/fcgid.conf и установить MaxRequestLen на более высокое значение, например 15MB (MaxRequestLen 15728640). Если сервер использует cPanel, это изменение может быть выполнено через WHM сервера.

Итак, если вы можете загружать изображения до 128 КБ, это решение вашей проблемы.

Ответ 4

Поместите эту строку в свой файл wp-config:

define('WP_MEMORY_LIMIT', '64M');

Ответ 5

У меня была такая же проблема, когда я пытался загружать носители, за исключением того, что получил "HTTP-ошибку" в файлах размером более 124 КБ! WP 3.3.1, PHP 5.2.

Я позвонил своему хосту, и они увеличили память до 64M (также изменили это в wp-config) и upload_limit до 8 МБ (по умолчанию было 2 МБ). Это не сработало, поэтому я прибегал почти ко всем остальным, от вмешательства в .htaccess, чтобы переустановить WP для установки нового WP на другом сервере, но все указывало на проблему с сервером. Я снова позвонил хозяину и поговорил с другим специалистом, который увеличил допустимую настройку длины запроса HTTP.

Ответ 6

Для будущих читателей просто удалось найти решение для этого после трудного дня поиска.

Есть параметр в файле fcgid.conf(для меня в /etc/apache 2/mods-enabled): FcgidMaxRequestLen. См. https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidmaxrequestlen

Я установил в байтах соответствующую длину и все работает. Кажется, что apache изменили свое мышление на значение по умолчанию (которое теперь составляет 131072 байта):

До версии 2.3.6 это значение по умолчанию равняется 1 ГБ. Большинство пользователей более ранних версий должны использовать эту директиву для установления более разумного предела.

Ответ 7

сервер может быть установлен в качестве библиотеки по умолчанию, для исправления для wordpress

Я поместил следующий код в мой файл functions.php. Он работает!

add_filter( 'wp_image_editors', 'change_graphic_lib' );

function change_graphic_lib($array) {
  return array( 'WP_Image_Editor_GD', 'WP_Image_Editor_Imagick' );
}

Ответ 8

Для меня проблема "ошибка http" возникла, когда php работает в режиме быстрой cgi.

"MaxRequestLen" из mod_fcgid ограничивал размер загрузки файлов, а wordpress выбрасывал "http-ошибку".

Вам нужно добавить следующие конфигурации в свой httpd.conf(apache2.conf на ubuntu 14):

<IfModule mod_fcgid.c>
  # 20MB
  MaxRequestLen 20000000
</IfModule>

Ответ 9

Я пробовал все часто предлагаемые изменения php.ini, а также изменения wp-config без везения. Наконец-то выяснилось, что кто-то предлагает просмотреть информацию о async-upload.php XHR в моем браузере и выяснил, что по какой-то причине наш брандмауэр помечает загрузку в качестве трояна (MalAgent.H_9218). Поэтому не забудьте проверить там, он также может идентифицировать другие возможные проблемы с загрузкой.

Инструкции Chrome: Хит F12 и выберите вкладку сети, затем попытайтесь загрузить с помощью WordPress, убедитесь, что строка фильтра находится либо в All, либо в XHR, в левой нижней панели найдите и выберите async-upload.php, в правой нижней панели выберите предварительный просмотр.

Ответ 10

В моем случае это решено отключением расширения Adblocker в браузере

Ответ 11

Наша проблема заключалась в том, что у нашего балансировщика осталась нехватка места на жестком диске. Обязательно настройте вращение журнала, который удаляет самые старые журналы за период.

Ответ 12

На самом деле наша проблема была на стороне клиента: люди пытались загружать с помощью перетаскивания из OneDrive файлы, которые не были локально синхронизированы, но отображались в папке OneDrive. Приводит к сообщению об ошибке "-200". Если файл находится на локальном жестком диске, он работал нормально.