Как известно, многие из элементов страниц сайта обновляются очень редко, к тому же если у вас очень медленный web сервер или он очень загружен ( например у вас игровой сервер находиться на одной машине с вебом), Если страницы сайта генерируются средствами PHP и делают множество SQL запросов, вам не обойтись без кеширования. Что нам это даст? Ваш сервер тут же снизит нагрузку и перестанет съедать много памяти на генерацию страниц - он просто будет загружать их из КЭШа.
Реализаций кеширования страниц очень много, все они отличаються способом кеширования разных элементов (интерактивных и не очень). Приведу пример довольно простой реализации:
В директории сайта создаем файлы start_cache.php, end_cache.php, а также папку с названием cache_files.
Папке cache_files необходимо проставить атрибуты 777.
В скрипт start_cache.php помещаем следующий код:
Code
<?php
// раздел настроек, которые вы можете менять
$settings_cachedir = 'cache_files/';
$settings_cachetime = 3600; //время жизни кэша (1 час)
// код
$thispage = 'http://' .
$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$cachelink = $settings_cachedir.md5($thispage).".html";
if (file_exists($cachelink)) {
$cachelink_time = filemtime($cachelink);
if ((time() - $settings_cachetime) < $cachelink_time) {
readfile($cachelink);die();
}
}
ob_start();
?>
Скрипт end_cache.php:
Code
<?php
$fp = fopen($cachelink, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush();
?>
Теперь добавляем в желаемую страницу строки:
Code
<?php include'start_cache.php'; ?> // в начале страницы (перед тегом body)
<?php include'end_cache.php'; ?> // в конце страницы (после тега body)