PHP Notice: unserialize() [<a href='function.unserialize'>function.unserialize</a>]: Error at offset in /.../includes/bootstrap.inc 에 대한 대책

PHP Notice: unserialize() [function.unserialize]: Error at offset 47 of 53 bytes in /.../includes/bootstrap.inc on line 555
이런 에러가 나온다면, 원인을 찾기가 쉽지 않다.

드루팔 본향 사이트에서 unserialize 등으로 검색해 보면,
너무나도 많은 정보와 그 해결책 가지수에 기가 질린다.

그만큼 이 문제는 케이스가 많다는 말. 고로 원인분석도 쉽지 않고 해결책도 다양할 듯.

게으른 드루지기는 시간이 부족한 관계로 try−and-error방식으로 도전해 보았다.
원인도 정확하게 모르니 일단 여러 방식으로 이것저것 시도해 보고, 어떤 특정 방법이 해결을 유도하면
꺼꾸로 원인도 알게 되는 방식인 셈인데... 추천하는 방식은 아니다.

여하튼 위 에러는 너무 범위가 넓어, 아래 모듈을 동원해서 원인을 찾아보았다.
http://drupal.org/project/variablecheck

위 모듈을 설치/활성화하고, 관리자 메뉴에서 Variable Check 관련 메뉴를 보았더니,

audio_getid3_path s:41:"sites/해당사이트/modules/audio/getid3/getid3";
webfm_icon_dir s:38:"sites/해당사이트/modules/webfm/image/icon";

에 문제가 있다고 알려왔다.
drupal디비로 접속 variables 테이블에서 위 2개를 백업하고 삭제했더니,
PHP Notice: unserialize() 가 사라졌다.

문제의 원인힌트는 환경설정 변수가 가지고 있던 셈이다.
시간이 더 충분하다면 이 힌트를 가지고 보다 근본적인 원인도 파헤치면 좋겠다.

어찌됐던 variablecheck 모듈, 큰 도움이 된 것은 사실이다.

Your rating: None 평균 : 4.8 (5 votes)