错误330(net :: ERR_CONTENT_DECODING_FAILED):
最近我们迁移到一个新的服务器。 2天后,我得到以下问题
1)我们在会话表上崩溃了,我们通过修改它来轻松修复
2)我们运行OpenX作为我们的广告服务器,它也崩溃了,但没有证据在error.log它让你login,但在看dashboard.php,我们得到的时刻:
Error 330 (net::ERR_CONTENT_DECODING_FAILED): (Google Chrome)
和
您尝试查看的页面无法显示,因为它使用无效或不受支持的压缩forms。 (火狐)
OpenX在PHP上使用以下服务:
OpenX需要: http : //www.openx.com/docs/2.8/adminguide/System%20requirements
OpenX使用默认的PHP设置。 但是,服务器pipe理员有时更改这些设置。 在安装OpenX之前,请检查以下设置是否正确:
magic_quotes_runtime必须closuressafe_mode必须closuresregister_argc_argv必须打开如果要通过命令行运行维护file_uploads需要打开以允许HTTP文件上载OpenX需要以下PHP扩展:
可以是mysql
扩展名,也可以是pgsql
。 不支持mysqli
扩展。 ZLib扩展,用于转换Flash MX
生成的压缩Flash文件中的链接。 FTP扩展。 如果不存在,OpenX将尝试模拟它,这可能是一个不太稳定的解决scheme。
GD扩展,在主页上生成graphics。 如果扩展未启用,您将无法查看您的主页上的图表或统计信息。 要么login到主页,需要openssl扩展名或启用SSL的curl扩展名。 如果SSL未启用,您将在主页中收到错误消息,但不影响操作。
任何线索可能的原因,或如何收集更多的信息将不胜感激。 谢谢
当你的HTTP请求的头文件声称内容是gzip编码时,会发生这种情况,但事实并非如此。 closuresgzip编码设置或确保内容实际上是编码的。
我在php.ini
启用了zlib.output_compression
,它似乎解决了我的问题。
代码需要在logging时保存没有BOM的UTF8。 有时用(Notepad ++)或其他编码工具编写代码并使用UTF8编码,会发生此错误。 对不起,我不懂英文。 这只是我的经验。
由于添加了输出缓冲模块扩展(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(); ?>
如果您要使用Codeigniter
框架,那么只需将其设置为config文件即可:
$config['compress_output'] = FALSE;
在php.ini
configuration文件中,使用:
zlib.output_compression=On
你使用ob_start(ob_gzhandler)
函数吗? 如果是这样,并且如果输出ob_start(ob_gzhandler)
函数之上的任何内容,则会出现此错误。 您可以不使用此function或不输出此function以上的内容。 ob_gzhandler
callback函数将确定浏览器将接受哪种types的内容编码,并相应地返回其输出。 所以如果你输出的内容高于这个函数,那么内容的编码可能与ob_gzhandler
的输出内容不同,并且会导致这个错误。
如果有人仍然在狩猎这个可恶的问题的原因,有一个解决scheme来钉死造成的文件。 从Drupal
社区https://www.drupal.org/node/1622904#comment-10768958 。
我引用:
编辑
includes/bootstrap.inc:
函数drupal_load()
。 这是一个简短的function。 find以下行: include_once DRUPAL_ROOT . '/' . $filename;
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; }
在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>
我在一个drupal站点上遇到了这个问题,而这个线程中的其他解决scheme都没有帮助。 经过一些故障排除后,我发现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', ), ), );
closures“?>”PHP标签在这里是不必要的。 如果您select使用结束标记,则必须确保后面没有字符/空格。
升级我们的系统到Revive时,我们也遇到了这个问题。 GZIP转机后,我们发现问题仍然存在。 经过进一步调查,我们发现升级后文件权限不正确。 一个简单的recursionchmod做了诀窍。
还有一个想法让其他人得到这个…
我有一些gzip的svg,但它有一个php错误的输出,这导致了这个错误消息。 (因为在gzip二进制中有文本。)解决php错误解决了它。