Onlangs migreerden we naar een nieuwe server. Na 2 dagen kreeg ik de volgende problemen
1) We hadden een crash op een sessietafel, die we gemakkelijk hebben opgelost door het opnieuw te herstellen
2) We lopen OpenX als onze Adserver, en het is ook gecrasht, maar er is geen bewijs in fout. LOG
Laten we u inloggen, maar op het moment van op zoek naar dashboard.php krijgen we de:
Error 330 (net::ERR_CONTENT_DECODING_FAILED): (Google Chrome)
en
De pagina die u probeert te bekijken, kan niet worden weergegeven omdat het een ongeldige of niet-ondersteunde vorm van compressie gebruikt. (Firefox)
OpenX gebruikt de volgende services op PHP:
OpenX vereist:
http://www.openx.com/docs/2.8/adminguide/system%20requirements
OpenX gebruikt de standaard PHP-instellingen. Serverbeheerders veranderen echter soms deze instellingen. Controleer voordat u OpenX installeert Controleer of de volgende instellingen correct zijn:
Magic_Quotes_runtime moet uit zijn
Safe_Mode moet uit zijn
Registreer_argc_argv moet staan als u onderhoud wilt uitvoeren via opdrachtregel
Bestand_Uploads moeten worden ingeschakeld om HTTP-bestandsuploads toe te staan
OpenX vereist de volgende PHP-extensies:
Ofwel de mysql
Extension of de pgsql
. De mysqli
Extension wordt niet ondersteund.
De ZLIB-extensie, om links in gecomprimeerde flitsbestanden te converteren die wordt gegenereerd door Flash MX
.
De FTP-extensie. Als dit niet aanwezig is, probeert OpenX het te simuleren, wat een minder stabiele oplossing kan zijn.
De GD-extensie, om grafieken op de startpagina te genereren. Als de extensie niet is ingeschakeld, kunt u geen grafieken of statistieken bekijken op uw startpagina.
Ofwel de OpenSSL-extensie of een SSL-enabled Curl-extensie is vereist om in te loggen op de startpagina. Als SSL niet is ingeschakeld, ontvangt u een foutmelding op de startpagina, maar er is geen impact op operaties.
Elke aanwijzing op mogelijke redenen of over het verzamelen van meer informatie zal zeer op prijs worden gesteld.
Bedankt
Antwoord 1, Autoriteit 100%
Het gebeurt wanneer de headers van uw HTTP-aanvraag beweren dat de inhoud GZIP is gecodeerd, maar dat is het niet.
Schakel de GZIP-coderingsinstelling uit of zorg ervoor dat de inhoud in feite is gecodeerd.
Antwoord 2, Autoriteit 42%
i ingeschakeld zlib.output_compression
IN php.ini
en het leek het probleem voor mij op te lossen.
Antwoord 3, Autoriteit 15%
Codes moeten tijdens het opnemen UTF8 zonder bom opslaan. Soms, schriftelijke codes met (notitieblok ++) of andere coderingshulpmiddelen en UTF8-coderen, optreedt deze fout.
Het spijt me, ik weet het niet Engels. Dit is gewoon mijn ervaring.
Antwoord 4, Autoriteit 6%
Deze fout veroorzaakt door uitgangsbufferingsmodules Extension (OB_GZHHANDLER) toegevoegd. Hoewel het gebruik van het buffering van de productie bij het starten van OB_START () en het beëindigen van OB_FHUSH ()
<?php
ob_start( 'ob_gzhandler' );
echo json_encode($array);
ob_end_flush();
?>
Gebruik dit:
<?php
ob_start();
echo json_encode($array);
ob_flush();
?>
Antwoord 5, Autoriteit 4%
Als u de Codeigniter
Framework wilt gebruiken, maakt u dit dan gewoon in Config-bestand:
$config['compress_output'] = FALSE;
en in php.ini
configuratiebestand, gebruik:
zlib.output_compression=On
Antwoord 6
Gebruik je de functie ob_start(ob_gzhandler)
? Als dat zo is en als u inhoud boven de functie ob_start(ob_gzhandler)
uitvoert, krijgt u deze foutmelding. U kunt deze functie niet gebruiken of geen inhoud boven deze functie uitvoeren. De callback-functie ob_gzhandler
bepaalt welk type inhoudcodering de browser accepteert en geeft de uitvoer dienovereenkomstig terug. Dus als u inhoud boven deze functie uitvoert, kan de codering van de inhoud verschillen van de uitvoerinhoud van ob_gzhandler
en deze fout veroorzaken.
Antwoord 7
Voor het geval iemand nog steeds op zoek is naar de oorzaak van dit hatelijke probleem, er is een oplossing om het veroorzakende bestand te achterhalen. https://www.drupal.org/node/1622904#comment-10768958van de Drupal
-gemeenschap.
En ik citeer:
Bewerken
includes/bootstrap.inc:
functie drupal_load()
. Het is een korte functie. Zoek de volgende regel:
include_once DRUPAL_ROOT . '/' . $filename;
Vervang het tijdelijk door
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;
}
Antwoord 8
Nog een idee voor iedereen die dit krijgt…
Ik had wat gzipped svg, maar er was een php-fout in de uitvoer, die deze foutmelding veroorzaakte. (Omdat er tekst in het midden van gzip binary stond.) Het oplossen van de php-fout loste het op.
Antwoord 9
Gzip-compressie inschakelen in php.ini:
zlib.output_compression = On
En voeg dit toe aan uw .htaccess-bestand:
<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>
Antwoord 10
Ik ervoer dit probleem op een Drupal Site en geen van de andere oplossingen in deze thread hielp. Nadat een probleemoplossing heb gevonden, vond ik dat de local.tingtings.php een sluittag had met een ruimte nadat het zo is, dus:
<?php
$databases = array(
'default' =>
array (
'default' =>
array (
'driver' => 'mysql',
'database' => 'xxx',
'username' => 'xxx',
'password' => 'xxx',
'port' => '',
'host' => 'xxx',
),
),
);
?>
Local.Settings.php bijwerken naar het volgende opgelost:
<?php
$databases = array(
'default' =>
array (
'default' =>
array (
'driver' => 'mysql',
'database' => 'xxx',
'username' => 'xxx',
'password' => 'xxx',
'port' => '',
'host' => 'xxx',
),
),
);
de sluiting “? & GT;” PHP-tag is hier niet nodig. Als u ervoor kiest om een sluitlabel te gebruiken, moet u ervoor zorgen dat er geen tekens / witruimte erna zijn.
Antwoord 11
Ik had vanmorgen een beetje een dummy moment toen ik me realiseerde wat dit probleem voor mij heeft veroorzaakt.
Het vreemde is dat het verzoek faalde in zowel Firefox als Chrome, maar werkte toen ik probeerde toegang te krijgen via Fiddler Web Debugger.
Voor mij was het probleem dat ik een karakter in een van de PHP-bestanden in het project verkeerd had getypt. Ik heb dit pas opgemerkt tot ik Git heb gecontroleerd op wijzigingen in het project.
In mijn zaak had ik: m<?php runMyProgram(); ?>
.
Toen ik de m had gewist, begon hij weer te werken.
Antwoord 12
In mijn geval gebeurde het bij het toevoegen van een nieuwe applicatie aan IIS die met Apache als proxy moest worden gebruikt.
Ik moest ProxyHTMLEnable On
instellen op ProxyHTMLEnable Off
om de inhoud te krijgen. (Het lijkt erop dat sommige js-code de fout hebben veroorzaakt, maar dit gaf me in ieder geval iets om mee te werken.)
IIS verzendt de pagina-inhoud Content-Encoding: gzip
<Proxy "http://192.168.1.1:81">
ProxyHTMLEnable On #> change this to Off
ProxyHTMLURLMap ... ...
</Proxy>
Antwoord 13
We hadden dit probleem ook bij het upgraden van ons systeem naar Revive. Nadat we GZIP hadden uitgeschakeld, ontdekten we dat het probleem zich nog steeds voordeed. Bij verder onderzoek ontdekten we dat de bestandspermissies niet correct waren na de upgrade. Een eenvoudige recursieve chmod deed het.
Antwoord 14
Er is een slechte Java-bug die dit veroorzaakt:
https://bugs.java.com/view_bug.do?bug_id=JDK- 8189789
Antwoord 15
Een veel gebruikelijker antwoord is dat je een fout hebt die wordt toegevoegd aan wat je ook comprimeert. De oplossing is om display_errors = Off
in te stellen in uw php.ini-bestand (controleer in uw terminal of deze aan staat door php --info
uit te voeren en zoek naar “display_errors”)
Dat zou het moeten doen. En, hoe ontdek je welke fouten je eigenlijk bent? Controleer uw PHP-foutlogboeken wanneer u op die route/pagina komt.
Succes!
Antwoord 16
Ik zag deze fout in combinatie met de PageSpeed-module ingeschakeld. De PageSpeed-module heeft een cache die GZIP-gecomprimeerd kan zijn. Dus blijkbaar wat kan gebeuren, is dat inhoud dubbel gecomprimeerd wordt.
Om bronnen te herschrijven, moet PageSpeed ze server-side cachen. Tot 1.10.33.0, deze middelen waren ongecomprimeerd opgeslagen. Om het diskegebruik te verminderen, de serverlatentie te verlagen, ondersteunt u hogere compressieniveaus en verhoogt de serverdoorvoer, de HTTPCACE kan automatisch de comprimeerbare bronnen gokken, omdat ze in de cache worden opgeslagen. Om de cachecompressie te configureren, stelt u HTTPCCACHECOMPRINGLEVEL in op waarden tussen -1 en 9, waarbij 0 uitgeschakeld zijn, -1 als de standaardcompressie van GZIP, en 9 Maximale compressie zijn. De standaardwaarde is 9, maximale compressie.
Ik heb het opgelost door deze regel toe te voegen aan mijn PageSpeed-configuratie:
HTTPCCACHECOMPRESSIONLEVEL 0
die de compressie uitschakelt.