2012-12-26 6 views
68

Recentemente abbiamo eseguito la migrazione a un nuovo server. Dopo 2 giorni, ho ottenuto le seguenti questioniErrore 330 (net :: ERR_CONTENT_DECODING_FAILED):

1) abbiamo avuto un incidente su una tabella di sessione, che abbiamo facilmente fissato dalla reparing lo

2) Corriamo OpenX come nostro server di annunci, ed è anche caduto, ma non ci sono prove in error.log e ti permette di effettuare il login, ma al momento di guardare al dashboard.php, si ottiene il:

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

e

la pagina che stai cercando di visualizzare non può essere mostrato perché utilizza un modulo non valido o non supportato di compressione. (Firefox)


OpenX utilizza i seguenti servizi su PHP:

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

OpenX utilizza le impostazioni predefinite di PHP. Tuttavia, gli amministratori dei server a volte cambiano queste impostazioni. Prima di installare il check OpenX che le seguenti impostazioni siano corrette:

magic_quotes_runtime deve essere spento safe_mode deve essere spento register_argc_argv deve essere attivata se si desidera eseguire la manutenzione tramite linea di comando file_uploads hanno bisogno di essere acceso per consentire di file HTTP upload OpenX richiede le seguenti estensioni PHP:

O l'estensione mysql o pgsql. L'estensione mysqli non è supportata. L'estensione ZLib, per convertire i collegamenti all'interno di file Flash compressi generati da Flash MX. L'estensione FTP. Se questo non è presente, OpenX proverà a simularlo, che può essere una soluzione meno stabile.

L'estensione GD, per generare grafici sulla Home page. Se l'estensione non è abilitata, non potrai visualizzare grafici o statistiche sulla tua Home page. Per poter accedere alla pagina iniziale è richiesta l'estensione openssl o un'estensione curl abilitata SSL. Se SSL non è abilitato, riceverai un messaggio di errore nella Home page, ma non ci sarà alcun impatto sulle operazioni.


Qualsiasi suggerimento su possibili motivi o su come raccogliere maggiori informazioni sarà molto apprezzato. Grazie

risposta

104

Succede quando le intestazioni della tua richiesta HTTP dichiarano che il contenuto è codificato con gzip, ma non lo è. Disattiva le impostazioni di codifica gzip o assicurati che il contenuto sia effettivamente codificato.

+0

Questo ha risolto il mio problema grazie. Sono curioso di sapere se questo è l'errore che avresti se il browser che usi non supporta la compressione gzip? – Lightbulb1

+4

Mi sono imbattuto in questo problema quando php stava emettendo un avviso di testo normale sopra il contenuto gzip. –

+0

Ho avuto questo problema quando il file di testo normale era bloccato nella cache di Apache, ma i browser si aspettavano contenuti gzippati – Ljudevit

20

codici devono salvare UTF8 senza BOM durante la registrazione. A volte, i codici scritti con (Notepad ++) o altri strumenti di codifica e utilizzano la codifica UTF8, si verifica questo errore. Mi dispiace, non so l'inglese. Questa è solo la mia esperienza.

+1

+1 perché è esattamente il problema anche nel mio caso – Konservin

+0

+1 Questo era anche il mio problema. Ho dovuto fare un duro riavvio perché non ho premuto shift-escape abbastanza veloce :(. Ancora non so perché il file non è stato codificato utf-8 (sublime testo 3 build 3083). Controllato i valori di default ed è stato utf- 8. Forse accidentalmente colpisco un ctrl-s-qualcosa per salvare in qualche altro formato ... – Rienk

0

Abbiamo anche riscontrato questo problema durante l'aggiornamento del sistema a Revive. Dopo il cambio di GZIP abbiamo riscontrato che il problema persisteva ancora. Dopo ulteriori indagini abbiamo trovato le autorizzazioni del file dove non è corretto dopo l'aggiornamento. Un semplice chmod ricorsivo ha fatto il trucco.

5

Questo errore è causato dall'aggiunta dell'estensione dei moduli di buffer di output (ob_gzhandler). Mentre l'uso di uscita buffer a partire ob_start() e termina ob_flush()

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

Utilizzare questa:

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

Funziona benissimo! :-) – jeeva

+0

Funziona insieme con l'abilitazione di zlib.output_compression in php.ini. A proposito - [PHP.net] (http://php.net/manual/en/function.ob-gzhandler.php) nota che l'utilizzo di zlib.output_compression è preferito su ob_gzhandler(). –

33

ho attivato zlib.output_compression in php.ini e sembrava per risolvere il problema per me.

+0

Ha funzionato anche per me! –

+0

Questo ha funzionato per me –

+0

ha funzionato perfettamente anche per me! Grazie! – Jeremy

1

Utilizzate la funzione ob_start(ob_gzhandler)? Se è così e Se si esegue l'output di qualsiasi contenuto sopra la funzione ob_start(ob_gzhandler), si otterrà questo errore. Non è possibile utilizzare questa funzione o non inviare il contenuto sopra questa funzione. La funzione di callback ob_gzhandler determinerà il tipo di contenuto che codifica il browser accetterà e restituirà l'output di conseguenza. Pertanto, se si esegue l'output di contenuti al di sopra di questa funzione, la codifica del contenuto potrebbe essere diversa dal contenuto di output di ob_gzhandler e causare questo errore.

1

Nel caso in cui qualcuno continui a cercare la causa di questo problema odioso, arriva una soluzione per inchiodare il file che causa. https://www.drupal.org/node/1622904#comment-10768958 dalla community Drupal.

cito:

Modifica

includes/bootstrap.inc:

funzione drupal_load(). È una funzione breve. Trova seguente riga: include_once DRUPAL_ROOT . '/' . $filename; temporaneamente sostituirlo con

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; 
} 
+0

Grazie per questo. Questo mi ha aiutato a rintracciare il mio problema, avevo un modulo drupal personalizzato senza codice Aggiungendo '

3

Se si è di utilizzare il quadro Codeigniter poi basta fare questo in file di configurazione:

$config['compress_output'] = FALSE; 

E in php.ini file di configurazione, utilizzo:

zlib.output_compression=On 
+0

Cambiare effettivamente il valore della direttiva _php.ini fa la correzione, poiché così facendo si importerà l'output a' gzipped'. La configurazione di 'Codeigniter' imposterà l'intestazione e spetta al server di applicazioni Web per applicarlo nell'output.Ho cercato di impostare '$ config ['compress_output'] = TRUE' mantenendo il' zlib.output_compression = On'. Ha lo stesso effetto. +1 per direzione. – codarrior

0

Un'altra idea per chiunque altro ottenere questo ...

Ho avuto qualche svg gzip, ma aveva un errore php nell'output, che ha causato questo messaggio di errore. (Perché c'era del testo nel mezzo di gzip binario.) Risolvere l'errore php l'ha risolto.

1

abilitare la compressione gzip in php.ini:

zlib.output_compression = On 

e aggiungere questo al vostro .htaccess di file:

<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> 
1

stavo sperimentando questo problema in un sito e nessuno delle altre soluzioni in questo thread ha aiutato. Dopo un po 'la risoluzione dei problemi ho trovato il local.settings.php ha avuto un tag di chiusura con uno spazio dopo in questo modo:

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

local.settings Aggiornamento.php al seguente risolto:

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

Il tag di chiusura "?>" PHP non è necessario qui. Se scegli di utilizzare un tag di chiusura devi assicurarti che non ci siano caratteri/spazi vuoti dopo di esso.