Рекомендуем: выгодная Партнерская программа XAP.ru Партнерская программа для веб-мастеров от XAP.ru - это возможность за секунды получить тысячи и десятки тысяч прямых ссылок на свой сайт бесплатно. Улучшение рейтинга сайта в Yandex, Google, Rambler через 1-2 недели. Увеличение дохода от контекстной рекламы в разы!
  Регистрация   Обратная связь   Форумы   Авторам статей   Реклама на сайте  

Меню пользователя



Опрос Населения

Какой у вас интернет?

56К
ADSL/SDSL
Wi-Fi/GPRS


Ссылки

дистрибьютер call центр, центр обработки вызовов
самоклеящиеся эмблемы и объёмные эмблемы - вас увидят все

    Корпоративный портал, передача данных диваны-кровати, диван, кресла, диваны, мебель

    Кэширование ваших страниц в 5 шагов
    Автор: Кузьма Феськов
    Категория: PHP
    Дата публикации: Ср 11 апреля 2009
    Просмотров: 134
    Комментариев: 0

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

    На данном этапе, вам понадобится знать 3 вещи. Ваш сайт генерируется с помощью PHP? Если нет, то вам, видимо, надо перестать читать этот материал. Во-вторых, вам необходимо знать, каким образом менять доступ к папкам на сайте на 777. Если вы не знаете, каким образом это делается – попытайте Google. И, наконец, вам необходимо знать полный путь до вашей home директории сайта, обычно это что-то типа /home/your_name/public_html/.

    Ну, теперь приступим к PHP. Я разложил технологию на самые простые шаги, которые позволят вам довольно легко понять суть метода.
      1. В домашней директории создаем файлы .htaccess, start_cache.php, end_cache.php, а также папку с названием cache_files.

      2. Папке cache_files необходимо проставить атрибуты 777.

      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();
      ?>

      Не забывайте исправлять путь /home/username/public_html/ на путь к вашей домашней директории.

      5. А следующий код поместите в скрипт end_cache.php:

      <?php
      $fp = fopen($cachelink, 'w');
      fwrite($fp, ob_get_contents());
      fclose($fp);
      ob_end_flush();
      ?>
    …вот, собственно, и все. Все ваши страницы будут кэшироваться на 3600 секунд. Этот параметр вы легко можете поменять в скрипте start_cache.php. Кэш страниц будет сохранен в папке cache_files.

    P.S. Примечания от переводчика

    Совершенно очевидно, что в данном случае атрибуты 777 являются определенным нарушением безопасности. В связи с чем, рекомендую вынести папку cahce_files за пределы public_html, например, поместить ее на один уровень выше. Это закроет доступ к находящимся в ней файлам пользователей вашего сайта, но никак не повлияет на работоспособность системы. .

    Также, у данного метода есть еще один серьезный недостаток: автор статьи складывает весь кэш в одну папку, что, при достаточном количестве страниц на вашем сайте, вызовет проблему, например, в системах *nix наблюдается достаточное замедление работоспособности при наличие в папке более чем 1000 файлов. В связи с чем, в алгоритм необходимо внести ряд изменений и раскладывать файлы по отдельным подпапкам внутри папки cache_files. Например, используя для этого первые 3-4 символа md5 КЭШа.

    Для динамических ресурсов вполне возможно выбрать время кэширования в несколько (5-10) секунд или 1-2 минуты, что уже значительно снизит нагрузку на сервер, но не нанесет вреда интерактивности сайта.

    Для страниц, для которых особо важна интерактивность, можно ввести исключения в .htaccess, что позволит именно им постоянно изменяться, а страницы, для которых интерактивности не является особо важным фактором, можно применять кэширование.
    Реклама




    Статистика






    Человек на сайте

    Пользователей
    Гостей


    Copyright © 2009 Овчинников Сергей
    Работает при помощи A47_CMS