Ошибка 330 (сеть:: ERR_CONTENT_DECODING_FAILED):

Недавно мы перенесли на новый сервер. Через 2 дня у меня появились следующие проблемы.

1) Мы столкнулись с сбоем в таблице сеансов, которую мы легко фиксировали, репарация его

2) Мы запускаем OpenX как наш сервер, и он также разбился, но нет никаких доказательств в файле error.log. Он позволяет вам войти в систему, но в момент поиска dashboard.php мы получаем:

Error 330 (net::ERR_CONTENT_DECODING_FAILED): (Google Chrome)

и

Страница, которую вы пытаетесь просмотреть, не может быть показана, поскольку она использует недопустимую или неподдерживаемую форму сжатия. (Firefox)


OpenX использует следующие службы на PHP:

OpenX требует: http://www.openx.com/docs/2.8/adminguide/System%20requirements

OpenX использует настройки PHP по умолчанию. Однако администраторы иногда меняют эти параметры. Перед установкой OpenX проверьте правильность следующих настроек:

magic_quotes_runtime должно быть выключено safe_mode должен быть выключен register_argc_argv должен быть включен, если вы хотите запустить обслуживание через командную строку file_uploads необходимо включить, чтобы разрешить загрузку файлов HTTP Для OpenX требуются следующие расширения PHP:

Либо расширение mysql, либо pgsql. Расширение mysqli не поддерживается. Расширение ZLib для преобразования ссылок внутри сжатых файлов Flash, созданных с помощью Flash MX. Расширение FTP. Если этого нет, OpenX попытается имитировать его, что может быть менее устойчивым решением.

Расширение GD, чтобы генерировать графики на главной странице. Если расширение не включено, вы не сможете просматривать графики или статистику на своей домашней странице. Для входа на домашнюю страницу требуется расширение расширения или расширение с расширением SSL. Если SSL не включен, вы получите сообщение об ошибке на домашней странице, но влияние на операции не будет.


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

Ответ 1

Это происходит, когда заголовки HTTP-заголовков утверждают, что контент кодируется gzip, но это не так. Отключите настройку кодирования gzip или убедитесь, что контент на самом деле закодирован.

Ответ 2

Я включил zlib.output_compression в php.ini и, похоже, исправил эту проблему для меня.

Ответ 3

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

Ответ 4

Эта ошибка вызвана расширением модулей буферизации вывода (ob_gzhandler). В то время как буферизация вывода используется при запуске ob_start() и завершении ob_flush()

<?php   
    ob_start( 'ob_gzhandler' ); 
    echo json_encode($array);
    ob_end_flush();
?>

Используйте это:

<?php   
    ob_start(); 
    echo json_encode($array);
    ob_flush();
?>

Ответ 5

Если вы хотите использовать инфраструктуру Codeigniter, просто установите это в файл конфигурации:

$config['compress_output'] = FALSE;

И в файле конфигурации php.ini используйте:

zlib.output_compression=On

Ответ 6

В случае, если кто-то все еще ищет причину этой ненавистной проблемы, приходит решение прибить вызывающий файл. https://www.drupal.org/node/1622904#comment-10768958 из сообщества Drupal.

И я цитирую:

Изменить

includes/bootstrap.inc:

функция drupal_load(). Это короткая функция. Найдите следующую строку: include_once DRUPAL_ROOT . '/' . $filename; Временно замените его на

ob_start();
include_once DRUPAL_ROOT . '/' . $filename;
$value = ob_get_contents();
ob_end_clean();
if ($value !== '') {
  $filename = check_plain($filename);
  $value = check_plain($value);
  print "File '$filename' produced unforgivable content: '$value'.";
  exit;
}

Ответ 7

Включить сжатие gzip в php.ini:

zlib.output_compression = On

И добавьте это в свой файл .htaccess:

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

Ответ 8

Используете ли вы функцию ob_start(ob_gzhandler)? Если да, и если вы выведете какой-либо контент выше функции ob_start(ob_gzhandler), вы получите эту ошибку. Вы не можете использовать эту функцию или не выводить содержимое выше этой функции. Функция обратного вызова ob_gzhandler определит, какой тип кодировки контента будет приниматься браузером, и соответственно вернет его результат. Поэтому, если вы выведете контент над этой функцией, кодировка содержимого может отличаться от выходного содержимого ob_gzhandler и вызвать эту ошибку.

Ответ 9

Еще одна идея для всех, кто получает это...

У меня был какой-то gzipped svg, но у него была ошибка php на выходе, что вызвало это сообщение об ошибке. (Потому что был текст в середине двоичного кода gzip.) Исправлена ​​ошибка php.

Ответ 10

Я столкнулся с этой проблемой на и ни одно из других решений в этой теме не помогло. После некоторого устранения неполадок я обнаружил, что у local.settings.php был закрытый тег с пробелом после него следующим образом:

<?php
$databases = array(
  'default' =>
  array (
    'default' =>
    array (
      'driver' => 'mysql',
      'database' => 'xxx',
      'username' => 'xxx',
      'password' => 'xxx',
      'port' => '',
      'host' => 'xxx',
    ),
  ),
);
?>
 

Обновление local.settings.php до следующего разрешения:

<?php
$databases = array(
  'default' =>
  array (
    'default' =>
    array (
      'driver' => 'mysql',
      'database' => 'xxx',
      'username' => 'xxx',
      'password' => 'xxx',
      'port' => '',
      'host' => 'xxx',
    ),
  ),
);

Закрывающий тег "? > " PHP здесь не нужен. Если вы решите использовать закрытый тег, вы должны убедиться, что после него нет символов/пробелов.

Ответ 11

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

Ответ 12

Этим утром у меня был какой-то тупой момент, когда я понял, что послужило причиной этой проблемы для меня.

Странно то, что запрос не удался как в Firefox, так и в Chrome, но работал, когда я пытался получить доступ через Fiddler Web Debugger.

Для меня проблема заключалась в том, что я неправильно набрал символ в одном из файлов PHP в проекте. Я не заметил этого, пока не проверил Git на предмет изменений в проекте.

В моем случае у меня было: m<?php runMyProgram();?> m<?php runMyProgram();?>.

Как только я стер m, он снова начал работать.

Ответ 14

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

Мне нужно было установить ProxyHTMLEnable On в ProxyHTMLEnable Off чтобы получить содержимое. (Похоже, какой-то js-код больше всего вызвал ошибку, но это дало мне хоть что-то для работы.)

IIS отправляет содержимое страницы Content-Encoding: gzip

<Proxy "http://192.168.1.1:81">
    ProxyHTMLEnable On   #> change this to Off
    ProxyHTMLURLMap  ...  ...
</Proxy>