Kuzma's PHP LookHome page: http://kuzma.russofile.ru |
|
Кэширование ваших страниц в 5 шаговОригинал: Posted in PHP / JavaScript by ibzi on the February 17th, 2007Перевод: Кузьма Феськов (kuzma@russofile.ru, http://kuzma.russofile.ru) Кэширование ваших страниц может оказаться красивым и полезным механизмом, особенно, если они генерируются средствами PHP и делают множество SQL запросов. Как только вы примените кэширование, ваш сервер тут же снизит нагрузку и перестанет съедать много памяти на генерацию страниц – он просто будет загружать их из КЭШа. Я покажу вам, как PHP может кэшировать страницы и, в дальнейшем, вы сможете тратить на это минут 5. На данном этапе, вам понадобится знать 3 вещи. Ваш сайт генерируется с помощью PHP? Если нет, то вам, видимо, надо перестать читать этот материал. Во-вторых, вам необходимо знать, каким образом менять доступ к папкам на сайте на 777. Если вы не знаете, каким образом это делается – попытайте Google. И, наконец, вам необходимо знать полный путь до вашей home директории сайта, обычно это что-то типа /home/your_name/public_html/. Ну, теперь приступим к PHP. Я разложил технологию на самые простые шаги, которые позволят вам довольно легко понять суть метода.
…вот, собственно, и все. Все ваши страницы будут кэшироваться на 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, что позволит именно им постоянно изменяться, а страницы, для которых интерактивности не является особо важным фактором, можно применять кэширование. |