{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1. [автор] (8 янв 2015, 11:29) [1/0] [1] [отв] [спам] [под] +1 | -1

Кэширование ваших страниц может оказаться красивым и полезным механизмом, особенно, если они генерируются средствами PHP и делают множество SQL запросов. Как только вы примените кэширование, ваш сервер тут же снизит нагрузку и перестанет съедать много памяти на генерацию страниц - он просто будет загружать их из КЭШа. Я покажу вам, как PHP может кэшировать страницы и в дальнейшем, вы сможете тратить на это минут 5.

1. В домашней директории создаем файлы .htaccess, start_cache.php, end_cache.php, а также папку с названием cache_files.
2. Папке cache_files необходимо проставить атрибуты 777. А лучше в целях безопасности, вообще вынести за пределы public_html или www
3. Внутри .htaccess файла пропишите следующие строки:

php_value auto_prepend_file
/home/username/public_html/start_cache.php
php_value auto_append_file
/home/username/public_html/end_cache.php
Строку /home/username/public_html/ необходимо заменить на путь к вашей домашней директории.
4. В скрипт start_cache.php помещаем следующий код:
<?php
//раздел настроек, которые вы можете менять
$settings_cachedir = '/home/username/public_html/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();
?>
5. А этот код поместите в скрипт end_cache.php:
<?php
$fp = fopen($cachelink, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush();
?>
Все ваши страницы будут кэшироваться на 3600 секунд = 1 час. Этот параметр вы можете поменять в скрипте start_cache.php. Кэш страниц будет сохранен в папке cache_files.

Удачи! *

2. (8 янв 2015, 11:33) [0/0] [0] [отв] [спам] [под] +1 | -1

Денис Павлик, это все?? Такая простая изюминка? В файлах ничего не нужно?

3. [автор] (8 янв 2015, 11:37) [0/0] [0] [отв] [спам] [под] +1 | -1
Vladislv,

Не нужно. Но, если ты плохо знаешь PHP, то можешь кешированием наделать больших проблем. Не все страницы нужно кешировать.

4. (8 янв 2015, 11:43) [0/0] [0] [отв] [спам] [под] +1 | -1

* а как поповоду даных из бд запись/вывод/обновление,если тупо мсе закешыть пользы небудет только вред...

5. [автор] (8 янв 2015, 11:48) [0/0] [0] [отв] [спам] [под] +1 | -1
iHgiBigyM,

Я ведь только-что сказал, не знаете PHP - не лезте в кеширование. Проблем много будет.

Отключить кэш на определенной странице, можно отправить браузеру специальные заголовки.

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');

6. (8 янв 2015, 11:52) [0/0] [0] [отв] [спам] [под] +1 | -1

допишы 1 первый пост будь добр ато потом будет много вопросов и криков...

7. [автор] (8 янв 2015, 12:31) [0/0] [0] [отв] [спам] [под] +1 | -1
iHgiBigyM,

Кому надо - комментарии почитают.

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений