web-dev-qa-db-ja.com

エラー330(net :: 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 MXによって生成された圧縮Flashファイル内のリンクを変換します。 FTP拡張。これが存在しない場合、OpenXはそれをシミュレートしようとしますが、安定性の低いソリューションになる可能性があります。

Gd拡張。ホームページでグラフを生成します。拡張機能が有効になっていない場合、ホームページでグラフや統計を表示することはできません。ホームページにログオンするには、openssl拡張機能またはSSL対応のcurl拡張機能のいずれかが必要です。 SSLが有効になっていない場合、ホームページにエラーメッセージが表示されますが、操作への影響はありません。


考えられる理由や、より多くの情報を収集する方法についての手がかりは大歓迎です。ありがとう

92
user1929691

HTTPリクエストのヘッダーがコンテンツがgzipエンコードされていると主張しているが、そうではない場合に発生します。 gzipエンコード設定をオフにするか、コンテンツが実際にエンコードされていることを確認してください。

124
THE ONLY ONE

zlib.output_compressionphp.iniを有効にすると、問題が解決したようです。

53

コードは、記録中にBOMなしでUTF8を保存する必要があります。 (Notepad ++)または他のコーディングツールでコードを記述し、UTF8エンコードを使用すると、このエラーが発生する場合があります。すみません、英語がわかりません。これは私の経験です。

21
user259374

このエラーは、出力バッファリングモジュールextension(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
4
Kaushik Dey

この悪意のある問題の原因をまだ探している人がいる場合、原因ファイルを解決する解決策があります。 https://www.drupal.org/node/1622904#comment-10768958Drupalコミュニティから。

そして私は引用します:

編集

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;
}
2
Hao

php.iniでgzip圧縮を有効にします。

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>
2
kurdtpage

ob_start(ob_gzhandler)関数を使用していますか?その場合、およびob_start(ob_gzhandler)関数の上にコンテンツを出力すると、このエラーが発生します。この関数を使用したり、この関数の上にコンテンツを出力したりすることはできません。 ob_gzhandlerコールバック関数は、ブラウザが受け入れるコンテンツエンコーディングのタイプを決定し、それに応じて出力を返します。したがって、この関数の上にコンテンツを出力すると、コンテンツのエンコードがob_gzhandlerの出力コンテンツと異なる可能性があり、このエラーが発生します。

1
linjie

これを手に入れた誰かのためのもう一つのアイデア...

Gzip圧縮されたsvgがいくつかありましたが、出力にphpエラーがあり、このエラーメッセージが発生しました。 (gzipバイナリの途中にテキストがあったため。)phpエラーを修正して解決しました。

1
Redzarf

drupal サイトでこの問題が発生しましたが、このスレッドの他のソリューションはどれも役に立ちませんでした。いくつかのトラブルシューティングの後、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タグを閉じる必要はありません。終了タグを使用することを選択した場合、その後に文字/空白がないことを確認する必要があります。

1
Banana

これを引き起こす悪いJavaバグがあります。 https://bugs.Java.com/view_bug.do?bug_id=JDK-8189789

0
bnieland

今朝、私にとってこの問題の原因を理解した少しのダミーの瞬間がありました。

奇妙なことに、FirefoxとChromeの両方でリクエストが失敗していましたが、Fiddler Web Debugger経由でアクセスしようとしても機能していました。

私にとって問題は、プロジェクトのPHPファイルの1つに文字を誤って入力したことです。プロジェクトの変更をGitで確認するまで、これに気付きませんでした。

私の場合は、m<?php runMyProgram(); ?>でした。

Mを消去すると、再び機能し始めました。

0
Jeremy Noonan

システムをReviveにアップグレードするときにもこの問題が発生しました。 GZIPをオンにした後、問題が解決しないことがわかりました。さらに調査した結果、アップグレード後にファイル権限が正しくないことがわかりました。単純な再帰的なchmodがトリックを行いました。

0
Wes

私の場合、Apacheでプロキシする必要があるIISに新しいアプリケーションを追加すると発生しました。

コンテンツを取得するには、ProxyHTMLEnable OnProxyHTMLEnable Offに設定する必要がありました。 (いくつかのjsコードがほとんどのエラーを引き起こしたように見えますが、これにより少なくとも何か解決することができました。)

IISはページコンテンツContent-Encoding: gzipを送信しています

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