항상 쓰는 config 캐시 활용하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

항상 쓰는 config 캐시 활용하기 정보

항상 쓰는 config 캐시 활용하기

본문

그누보드는 config테이블의 내용을 항상 접속시마다 데이터베이스에서 불러들입니다. 이것을 예전에 아빠불당님이 좀더 세분화해서 여러 테이블로 나눈 적이 있는데요. 그렇게 하면 데이터베이스를 수정해야 하니까 조금 망설이는 분들을 위해 캐시 파일을 활요하는 방법을 알려드립니다.

원리는 config의 내용을 파일로 저장해서 매번 접속시마다 데이터베이스에서 불러오는 것이 아니라 파일에서 불러오게 합니다: 디비를 접속하지 않기 때문에 약간의 속도 향상이 있습니다.

수정 파일들: common.php, config.php, adm/config_form_update.php

설명은 최신 그누보드 기준으로 설명합니다.

1. common.php

다음을 찾습니다:
$config = sql_fetch(" select * from $g4[config_table] ");
다음으로 교체합니다:
$config_cache_file = $g4['path'].'/data/cache/config.cache.php';
if ($g4['use_config_cache'] && file_exists($config_cache_file))
{
 include_once($config_cache_file);
 $config = unserialize($config_cache);
 unset($config_cache);
}
else
{
 $config = sql_fetch(" select * from $g4[config_table] ");
}

2. config.php

파일 중간쯤에 다음을 삽입합니다:
// use config cache
$g4['use_config_cache'] = true;

3. adm/config_form_update.php

다음을 찾습니다:
sql_query($sql);

//sql_query(" OPTIMIZE TABLE `$g4[config_table]` ");

다음의 코드를 아래에 삽입합니다:
if ($g4['use_config_cache'])
{
 $config = sql_fetch(" select * from $g4[config_table] ");

 if (!is_dir($g4['path'].'/data/cache'))
 {
  mkdir($g4['path'].'/data/cache') or die('캐시 디렉토리를 생성할 수 없습니다. 퍼미션을 확인해 주세요.');
  @chmod($g4['path'].'/data/cache', 0707);
 }

 if ($fp = fopen($config_cache_file, 'w'))
 {
  fwrite($fp, "<?\n\$config_cache='".str_replace("'", "
\\'", serialize($config))."';\n?>");
  fclose($fp);
 }
 else
 {
  alert('캐시 생성에 실패했습니다.\ndata/cache 디렉토리가 존재하는지 혹은 쓰기가 가능한 퍼미션인지 확인하여 주세요.');
 }
}

추가: 완료한 후에는 반드시 어드민으로 접속해서 환경설정을 한번 저장해 주어야 캐시 파일이 생성됩니다. 그렇지 않으면 효과는 없습니다.

추천
6
  • 복사

댓글 7개

말콤님 캐쉬생성을 따라하지 못하고 이 방법으로 겨우겨우 적용했네요.
역시 초보에게는 너무 모든게 어려운거 같아요. 감사합니다.
© SIRSOFT
현재 페이지 제일 처음으로