Kesalahan 330 (net :: ERR_CONTENT_DECODING_FAILED):

98

Baru-baru ini kami bermigrasi ke server baru. Setelah 2 hari, saya mendapat masalah berikut

1) Kami mengalami crash pada tabel sesi, yang dengan mudah kami perbaiki dengan memperbaikinya

2) Kami menjalankan OpenX sebagai server iklan kami, dan itu juga macet, tetapi tidak ada bukti di error.log Ini memungkinkan Anda masuk, tetapi saat melihat ke dashboard.php, kami mendapatkan:

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

dan

Halaman yang Anda coba lihat tidak dapat ditampilkan karena menggunakan bentuk kompresi yang tidak valid atau tidak didukung. (Firefox)


OpenX menggunakan layanan berikut di PHP:

OpenX membutuhkan: http://www.openx.com/docs/2.8/adminguide/System%20requirements

OpenX menggunakan pengaturan PHP default. Namun, administrator server terkadang mengubah pengaturan ini. Sebelum Anda menginstal OpenX, periksa apakah pengaturan berikut sudah benar:

magic_quotes_runtime harus dimatikan safe_mode harus dimatikan register_argc_argv harus aktif jika Anda ingin menjalankan pemeliharaan melalui baris perintah file_uploads perlu dihidupkan untuk mengizinkan unggahan file HTTP OpenX memerlukan ekstensi PHP berikut:

Bisa mysqlekstensi, atau pgsql. The mysqliekstensi tidak didukung. Ekstensi ZLib, untuk mengonversi tautan di dalam file Flash terkompresi yang dihasilkan oleh Flash MX. Ekstensi FTP. Jika ini tidak ada, OpenX akan mencoba mensimulasikannya, yang bisa menjadi solusi yang kurang stabil.

Ekstensi GD, untuk menghasilkan grafik di halaman Beranda. Jika ekstensi tidak diaktifkan, Anda tidak akan dapat melihat grafik atau statistik di halaman Beranda Anda. Baik ekstensi openssl atau ekstensi curl yang mendukung SSL diperlukan untuk masuk ke halaman Beranda. Jika SSL tidak diaktifkan, Anda akan menerima pesan kesalahan di halaman Beranda, tetapi tidak ada dampak pada pengoperasian.


Petunjuk apa pun tentang kemungkinan alasan atau tentang cara mengumpulkan lebih banyak informasi akan sangat dihargai. Terima kasih

pengguna1929691
sumber

Jawaban:

133

Ini terjadi ketika header permintaan HTTP Anda mengklaim bahwa konten tersebut dikodekan dengan gzip, tetapi sebenarnya tidak. Nonaktifkan setelan pengkodean gzip atau pastikan konten benar-benar dienkode.

SATU-SATUNYA
sumber
Ini memperbaiki masalah saya, terima kasih. Saya hanya ingin tahu apakah ada yang tahu apakah ini adalah kesalahan yang Anda dapatkan jika browser yang Anda gunakan tidak mendukung kompresi gzip?
Lightbulb1
6
Saya menemukan masalah ini ketika php mengeluarkan peringatan teks biasa di atas konten gzip.
Mike Causer
Saya mengalami masalah ini ketika file teks biasa macet di cache apache, tetapi browser mengharapkan konten yang di-gzip
Ljudevit
54

Aku diaktifkan zlib.output_compressiondi php.inidan tampaknya untuk memperbaiki masalah bagi saya.

Francisco Cortes
sumber
Bekerja untuk saya juga. (quercus-4.0.39 + glassfish4 + buat web-inf / php.ini secara manual.
Malcolm Boekhoff
21

kode perlu menyimpan UTF8 tanpa BOM saat merekam. Terkadang, kode tertulis dengan (Notepad ++) atau alat pengkodean lainnya dan menggunakan penyandian UTF8, kesalahan ini terjadi. Maaf, saya tidak tahu bahasa Inggris. Ini hanya pengalaman saya.

pengguna259374
sumber
+1 Ini juga masalah saya. Harus melakukan booting ulang yang sulit karena saya tidak menekan shift-escape cukup cepat :(. Masih tidak tahu mengapa file tidak dienkode utf-8 (teks sublim 3 build 3083). Centang default dan utf- 8. Mungkin saya tidak sengaja menekan ctrl-s-sesuatu untuk disimpan dalam beberapa format lain ...
R_Ice
7

Kesalahan ini disebabkan karena ekstensi modul penyangga keluaran (ob_gzhandler) ditambahkan. Sementara buffering keluaran digunakan saat memulai ob_start () dan mengakhiri ob_flush ()

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

Gunakan ini:

<?php   
    ob_start(); 
    echo json_encode($array);
    ob_flush();
?>
sankar muniyappa
sumber
Ia bekerja bersama dengan mengaktifkan zlib.output_compression di php.ini. Omong-omong - [PHP.net] ( php.net/manual/en/function.ob-gzhandler.php ) mencatat bahwa penggunaan zlib.output_compression lebih disukai daripada ob_gzhandler ().
Kristjan Adojaan
5

Jika Anda akan menggunakan Codeigniterkerangka kerja maka buatlah ini menjadi file konfigurasi:

$config['compress_output'] = FALSE;

Dan di php.inifile konfigurasi, gunakan:

zlib.output_compression=On
Kaushik Dey
sumber
Sebenarnya mengubah nilai direktif php.ini melakukan perbaikan, karena hal itu akan memaksa semua output menjadi gzipped. The Codeigniterconfig akan mengatur header dan terserah ke server aplikasi web untuk menegakkan bahwa dalam output. Saya mencoba untuk mengatur $config['compress_output'] = TRUEsambil menyimpan file zlib.output_compression=On. Ini memiliki efek yang sama. 1 untuk petunjuk arah.
codarrior
2

Apakah Anda menggunakan ob_start(ob_gzhandler)fungsinya? Jika demikian dan Jika Anda mengeluarkan konten apa pun di atas ob_start(ob_gzhandler)fungsi, Anda akan mendapatkan kesalahan ini. Anda tidak dapat menggunakan fungsi ini atau tidak menampilkan konten di atas fungsi ini. Fungsi ob_gzhandlerpanggilan balik akan menentukan jenis konten pengkodean apa yang akan diterima browser dan akan mengembalikan keluarannya sesuai. Jadi jika Anda mengeluarkan konten di atas fungsi ini, pengkodean konten mungkin berbeda dari konten keluaran ob_gzhandlerdan yang menyebabkan kesalahan ini.

linjie
sumber
2

Jika ada yang masih memburu penyebab masalah kebencian ini, ada solusi untuk mengatasi file penyebabnya. https://www.drupal.org/node/1622904#comment-10768958 dari Drupalkomunitas.

Dan saya mengutip:

Edit

includes/bootstrap.inc:

fungsi drupal_load(). Ini adalah fungsi yang singkat. Temukan baris berikut: include_once DRUPAL_ROOT . '/' . $filename; Untuk sementara ganti dengan

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;
}
Hao
sumber
Terima kasih untuk ini. Ini membantu saya melacak masalah saya, saya memiliki modul drupal khusus yang tidak memiliki kode di dalamnya. Menambahkan <?phptetap itu.
Sean Bannister
2

Satu ide lagi untuk orang lain yang mendapatkan ini ...

Saya memiliki beberapa svg gzip, tetapi memiliki kesalahan php dalam output, yang menyebabkan pesan kesalahan ini. (Karena ada teks di tengah-tengah biner gzip.) Memperbaiki kesalahan php menyelesaikannya.

Redzarf
sumber
Setuju, periksa semua log kesalahan PHP Anda sebelum mengaktifkan kompresi. Terutama jika Anda tidak mematikan kompresi zlib baru-baru ini, dan sekarang mengalami kesalahan. Baru saja memperbaiki kueri DB yang buruk yang menyebabkan kesalahan yang sama ini. Mengaktifkan zlib.output_compressionhanya memberi saya browser yang penuh dengan karakter sampah.
Bert
2

Aktifkan kompresi gzip di php.ini :

zlib.output_compression = On

Dan tambahkan ini ke file .htaccess Anda :

<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>
kurdtpage.dll
sumber
1

Saya mengalami masalah ini di situs dan tidak ada solusi lain di utas ini yang membantu. Setelah beberapa pemecahan masalah saya menemukan local.settings.php memiliki tag penutup dengan spasi setelahnya seperti ini:

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

Memperbarui local.settings.php ke yang berikut diselesaikan:

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

Tag PHP penutup "?>" Tidak diperlukan di sini. Jika Anda memilih untuk menggunakan tag penutup, Anda harus memastikan tidak ada karakter / spasi setelahnya.

pisang
sumber
1

Saya mengalami sedikit momen bodoh pagi ini ketika saya menyadari apa yang menyebabkan masalah ini bagi saya.

Yang aneh adalah bahwa permintaan tersebut gagal di Firefox dan Chrome, tetapi berfungsi ketika saya mencoba mengakses melalui Fiddler Web Debugger.

Bagi saya, masalahnya adalah saya salah mengetik karakter ke salah satu file PHP dalam proyek tersebut. Saya tidak memperhatikan ini sampai saya memeriksa Git untuk perubahan pada proyek.

Dalam kasus saya saya punya: m<?php runMyProgram(); ?>.

Setelah saya menghapus m, itu mulai bekerja lagi.

Jeremy Noonan
sumber
spasi kosong sebelum tag php terbuka dapat menyebabkan kesalahan yang sama.
deepcell
1

Dalam kasus saya itu terjadi saat menambahkan aplikasi baru ke IIS yang perlu di-proxy-kan dengan Apache.

Saya perlu mengatur ProxyHTMLEnable OnkeProxyHTMLEnable Off mendapatkan konten. (Sepertinya beberapa kode js sebagian besar telah memicu kesalahan, tetapi ini memberi saya setidaknya sesuatu untuk dikerjakan.)

IIS mengirimkan konten halaman Content-Encoding: gzip

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

Kami juga mengalami masalah ini saat meningkatkan sistem kami ke Bangkit. Setelah mematikan GZIP kami menemukan masalah masih berlanjut. Setelah penyelidikan lebih lanjut, kami menemukan izin file yang tidak benar setelah peningkatan. Chmod rekursif sederhana melakukan triknya.

Wes
sumber
0

Jawaban yang jauh lebih umum adalah Anda memiliki beberapa kesalahan yang ditambahkan ke apa pun yang Anda kompres. Solusinya adalah mengatur display_errors = Offdi file php.ini Anda (Periksa di terminal Anda apakah itu Aktif dengan menjalankanphp --info dan cari "display_errors")

Itu harus dilakukan. Dan, bagaimana Anda menemukan kesalahan apa yang sebenarnya Anda lakukan? Periksa log kesalahan PHP Anda setiap kali Anda menekan rute / halaman itu.

Luclk bagus!

tommymarshall
sumber