IT

오류 330 (net :: ERR_CONTENT_DECODING_FAILED) :

lottoking 2020. 8. 26. 08:10
반응형

오류 330 (net :: ERR_CONTENT_DECODING_FAILED) :


최근 우리는 새 서버로 마이그레이션했습니다. 2 일 후 다음과 같은 문제가 발생했습니다.

1) 세션 테이블에 충돌이 발생했습니다.이를 복구하여 쉽게 고쳤습니다.

2) OpenX를 광고 서버로 실행하고 충돌도 발생했지만 error.log는 증거가 없습니다. Dashboard.php를 상상하는 순간 다음과 같은 결과가 나타납니다.

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

보려는 페이지는 유효하지 않고 지원되지 않는 압축 형식을 사용하기 때문에 표시 할 수 없습니다. (Firefox)


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 파일 업로드를 허용 비용 파일 _ 업로드를 켜야합니다. OpenX에는 다음 PHP 확장이 필요합니다.

중 하나를 mysql확장하거나 pgsql. mysqli확장은 지원되지 않습니다. ZLib 확장, Flash MX. FTP 확장입니다. OpenX는 이것이 존재하지 않는 시뮬레이션 할 수 있습니다.

홈 페이지에서 그래프를 생성하기위한 GD 확장. 확장 기능이 활성화되어 있지 않은 홈페이지에서 그래프 나 통계를 볼 수 없습니다. 홈 페이지에 필요한 광고 확장 openssl 확장 또는 SSL 사용 curl 확장이 있습니다. SSL이 활성화되지 않은 경우 홈 페이지에 오류 메시지가 표시되는 경우에는 영향을주지 않습니다.


가능한 이유 또는 더 많은 정보를 수집하는 방법에 대한 단서가 있으면 감사하겠습니다. 감사합니다


HTTP 요청의 헤더가 콘텐츠가 gzip으로 인코딩되어 주장 할 경우 발생합니다. gzip 인코딩 설정을 끄거나 콘텐츠가 실제로 사용하도록 확인합니다.


나는 활성화 zlib.output_compressionphp.ini나를 위해 문제를 해결 것 같았다.


코드는 기록하는 동안 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['compress_output'] = FALSE;

그리고 php.ini구성 파일에서 다음을 사용하십시오.

zlib.output_compression=On

이 혐오스러운 문제의 원인을 찾는 사람이 원인을 찾을 수 있습니다. 커뮤니티 에서 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;
}

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>

ob_start(ob_gzhandler)기능 을 사용 합니까? 그렇다면 ob_start(ob_gzhandler)함수 위에 콘텐츠를 출력 하면이 오류가 발생합니다. 이 기능을 사용할 수 없거나이 기능 위에 콘텐츠를 출력 할 수 없습니다. ob_gzhandler콜백 함수를 수락 할 브라우저를 인코딩하는 내용의 유형을 결정하고 그에 따라 출력합니다. 따라서이 함수 위에 콘텐츠를 출력하면 콘텐츠의 인코딩이의 출력 콘텐츠 ob_gzhandler다를 수 있으며 이로 인해이 오류가 발생합니다.


다른 사람을위한 아이디어가 하나 더 있습니다.

gzip으로 압축 된 svg가 있었지만 출력에 php 오류가있어서이 오류 메시지가 발생했습니다. (gzip 바이너리 중간에 텍스트가 있었기 때문입니다.) PHP 오류를 수정하면 문제가 해결되었습니다.


사이트 에서이 문제가 발생 스레드의 다른 솔루션이 도움이되지 않았습니다. 몇 가지 문제 해결 후 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',
    ),
  ),
);

여기서 닫는 "?>"PHP 태그는 필요하지 않습니다. 닫는 태그를 사용하기로 선택한 경우 뒤에 문자 / 공백이 없는지 확인해야합니다.


시스템을 Revive로 업그레이드 할 때도이 문제가 발생했습니다. GZIP을 켠 후에도 문제가 여전히 지속되는 것을 발견했습니다. 추가 조사를 통해 업그레이드 후 수정되지 않은 파일 권한을 발견했습니다. 간단한 재귀 chmod가 트릭을 수행했습니다.


오늘 아침에이 문제의 원인을 깨달았을 때 나는 약간의 가짜 순간을 보냈습니다.

이상한 점은 요청이 Firefox와 Chrome 모두에서 실패했지만 Fiddler Web Debugger를 통해 액세스하려고 할 때 작동했다는 것입니다.

나에게 문제는 프로젝트의 PHP 파일 중 하나에 문자를 잘못 입력했다는 것입니다. Git에서 프로젝트 변경 사항을 확인할 때까지 이것을 알지 못했습니다.

제 경우에는 m<?php runMyProgram(); ?>.

m을 지우면 다시 작동하기 시작했습니다.


이를 유발하는 나쁜 Java 버그가 있습니다 : https://bugs.java.com/view_bug.do?bug_id=JDK-8189789


제 경우에는 Apache로 프록시해야하는 IIS에 새 응용 프로그램을 추가 할 때 발생했습니다.

콘텐츠를 얻으려면 로 설정 ProxyHTMLEnable On해야 ProxyHTMLEnable Off했습니다. (일부 js 코드가 오류를 유발 한 것처럼 보이지만 이로 인해 적어도 작업 할 수 있습니다.)

IIS가 페이지 콘텐츠를 보내고 있습니다. Content-Encoding: gzip

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

참고 URL : https://stackoverflow.com/questions/14039804/error-330-neterr-content-decoding-failed

반응형