슈퍼캐시를 사용하면 files/cache/store 폴더의 용량이 폭발적으로 늘어나면서 캐시파일 재생성 도중 오류가 발생하는 경우가 종종 있습니다. 라이믹스는 캐시파일 재생성 방식이 달라서 그나마 괜찮은 편인데, XE는 먹통이 되거나 뭘 재시작해 달라는 이상한 메시지를 띄우곤 하지요.
오늘 깃허브에 올린 1.1 버전에서는 이 문제를 해결하기 위해 자체적으로 캐시파일을 관리하는 기능을 탑재했습니다. 앞으로 슈퍼캐시 모듈이 생성하는 파일은 모두 XE 캐시와 별도로 files/supercache 폴더에 저장되고, 오래된 파일은 가능하면 그때그때 지워 주도록 하여 용량도 어느 정도 조절이 됩니다.
캐시파일 삭제는 XE처럼 PHP로 모든 파일을 일일이 삭제하는 방식이 아니라 라이믹스처럼 exec 함수로 rm -rf (리눅스) 또는 rmdir /S /Q (윈도우) 명령 실행을 시도하고, 호스팅 환경의 특성상 이게 허용되지 않는 경우에만 일일이 삭제합니다. (만약 여기서 심각한 버그가 발생한다면 서버를 통째 날려먹을지도? ㄷㄷㄷ)
오브젝트 캐시 설정을 "파일(file)"로 해놓고 쓰시던 분은 1.1 버전으로 업데이트하신 후 "기본값(default)"으로 바꿔 보세요. 이후에도 한 번은 files/cache/store 폴더를 수동으로 지워 주셔야 할 수 있지만, 그 다음에는 좀 괜찮아질 것입니다.
단, 새로 만든 기능이기 때문에 서버 환경에 따라 오류가 발생할 수도 있습니다. 오류 발생시 최대한 자세한 기록을 남겨 주시면 슈퍼캐시와 관련된 문제인지 확인해 보겠습니다.
깃허브 저장소: https://github.com/kijin/xe-supercache
설치 경로: ./modules/supercache
설치 환경: XE 1.8 이상, PHP 5.3 이상 (일부 기능은 XE 최신 버전 또는 별도 코어수정 필요)
지금까지 제보된 문제
- 전체화면 캐시 사용시 일부 사이트에서 모바일 사용자에게 PC용 화면이 표시되는 경우가 있다고 합니다.
- "잘못된 이미지 요청 차단" 기능 사용시 일부 IE 구버전 사용자에게 오류가 표시된다고 합니다. 얼마 전에 해당 기능을 수정했는데, 그 후에도 계속 문제가 발생하는지는 모르겠습니다.
- 모듈 설정이나 스킨 설정을 변경해도 전체화면 캐시에는 적용되지 않습니다. 따로 캐시파일 재생성을 해주셔야 합니다. 어느 정도까지는 보완할 수 있겠지만, 모듈 설정이 워낙 다양해서 완벽한 대응은 힘들 것 같네요.