Wordpress: «Ошибка HTTP».При загрузке файлов - PullRequest
9 голосов
/ 03 ноября 2010

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

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

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

-

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

  1. Дважды проверил php.ini, чтобы убедиться, что увеличение загрузки, записи и объема памяти было достаточно высоким.
  2. Обновлен .htaccess, чтобы включить фильтр мода безопасности, который я нашел в другом месте.
  3. Дважды провереновсе права доступа к файлу через ftp, чтобы убедиться, что они равны 755.
  4. Вызывается хост - «Они не поддерживают скрипты сторонних производителей» (я ненавижу IPower)
  5. Пробовал с разными аудио файлами одинакового размера.
  6. Отключены все плагины

-

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

Заранее спасибо.

Ответы [ 11 ]

10 голосов
/ 15 февраля 2015

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

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

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

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

client_max_body_size 100m;

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

6 голосов
/ 14 марта 2012

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

Наконец мы обнаружили, что слово «HTTP HTTP Error» при загрузке изображений происходило из-за изменений на стороне сервера.Хостинговая компания решила добавить APC Accelerate на сервер, чтобы повысить стабильность и скорость работы сервера.Ускорение 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 более высокое значение, например, 15 МБ (MaxRequestLen 15728640).Если сервер использует cPanel, это изменение можно выполнить через WHM сервера.

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

3 голосов
/ 30 октября 2011

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

define('WP_MEMORY_LIMIT', '64M');
2 голосов
/ 05 ноября 2010

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

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

  1. Получение другого хоста
  2. Использование выделенного сервера
  3. Передача файлов большего размера по FTP, а не из WordPress.
1 голос
/ 29 ноября 2015

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

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

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

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

1 голос
/ 16 февраля 2012

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

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

0 голосов
/ 16 мая 2018

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

0 голосов
/ 22 октября 2017

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

0 голосов
/ 09 мая 2017

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

Chrome: Нажмите F12 и выберите вкладку «Сеть», затем попробуйте выполнить загрузку с помощью WordPress, убедитесь, что строка фильтра имеет значение «Все» или «XHR», в левой нижней панели найдите и выберите async-upload.php, в правой нижней панели выберите «Предварительный просмотр».

0 голосов
/ 12 мая 2016

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

«MaxRequestLen» из mod_fcgid ограничивал размер загружаемого файла, а wordpress выдавал «ошибку http».

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

<IfModule mod_fcgid.c>
  # 20MB
  MaxRequestLen 20000000
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...