101

最近、新しいサーバーに移行しました。2日後、次の問題が発生しました

1) セッション テーブルでクラッシュが発生しましたが、修復することで簡単に修正できました。

2) 広告サーバーとして OpenX を実行していますが、これもクラッシュしましたが、error.log に証拠はありません。ログインできますが、dashboard.php を見ると、次のようになります。

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

表示しようとしているページは、無効またはサポートされていない形式の圧縮を使用しているため、表示できません。(ファイアフォックス)


OpenX は、PHP で次のサービスを使用します。

OpenX の要件: http://www.openx.com/docs/2.8/adminguide/System%20requirements

OpenX はデフォルトの PHP 設定を使用します。ただし、サーバー管理者がこれらの設定を変更することがあります。OpenX をインストールする前に、次の設定が正しいことを確認してください。

magic_quotes_runtime をオフにする必要があります safe_mode をオフにする必要があります register_argc_argv をオンにする必要があります (コマンド ライン経由でメンテナンスを実行する場合) HTTP ファイルのアップロードを許可するには、file_uploads をオンにする必要があります OpenX には、次の PHP 拡張機能が必要です。

拡張子mysql、またはpgsql. mysqli拡張子はサポートされていません。によって生成された圧縮 Flash ファイル内のリンクを変換するための ZLib 拡張機能Flash MX。FTP 拡張機能。これが存在しない場合、OpenX はそれをシミュレートしようとしますが、これは安定性の低いソリューションになる可能性があります。

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


考えられる理由や、より多くの情報を収集する方法についての手がかりをいただければ幸いです。ありがとう

4

16 に答える 16

22

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

于 2013-10-02T23:04:12.083 に答える
9

このエラーは、出力バッファリング モジュール拡張機能 (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();
?>
于 2015-01-05T14:15:28.960 に答える
6

フレームワークを使用する場合は、Codeigniterこれを構成ファイルに入れるだけです。

$config['compress_output'] = FALSE;

php.ini構成ファイルでは、次を使用します。

zlib.output_compression=On
于 2016-12-23T07:37:11.520 に答える
2

この厄介な問題の原因をまだ探している人のために、原因となっているファイルを釘付けにする解決策があります。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;
}
于 2016-11-09T13:30:43.433 に答える
2

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

于 2015-06-19T02:23:42.080 に答える
0

システムをReviveにアップグレードしたときにも、この問題が発生しました。GZIP を変更した後も、問題が解決しないことがわかりました。さらに調査したところ、アップグレード後にファイルのアクセス許可が正しくないことがわかりました。単純な再帰的な chmod でうまくいきました。

于 2014-06-19T21:50:39.703 に答える