Тот, кто делает сайты на Joomla!, знает на личном опыте, что стоит установить на этот движок несколько компонентов и модулей, как сайт начинает заметно медленней работать. Конечно же, можно включить в админке кеширование, но и это не особо ускоряет работу сайта.

Давайте разберёмся, почему это происходит и как исправить такую ситуацию в лучшую сторону. Joomla!, как и большинство других движков, написана на скриптовом языке программирования PHP. Это значит, что на PHP написаны сценарии (скрипты), в которых описаны последовательности операций для получения какого-либо результата. В нашем случае там прописано, что и как должно работать на сайте. Рассмотрим подробнее, как это работает.

Пользователь заходит на Ваш сайт - в этот момент на сервер из его браузера идёт запрос к странице, которую он запросил. Сервер принимает этот запрос и, если в коде страницы есть PHP код, передаёт этот код в интерпретатор PHP. Задача интерпретатора - принять PHP код и обработать его. Проще говоря, выполнить те последовательности действий, которые описаны в PHP коде. После обработки кода интерпретатор отдаёт результат серверу, а сервер отдаёт этот результат браузеру посетителя в виде HTML кода. При этом каждый раз перед тем, как интерпретатор сможет выполнить PHP скрипт, происходит компиляция этого PHP скрипта в байткод, который и обрабатывается. При этом компиляция кода отнимает некоторое количество ресурсов сервера, а если сайт состоит из большого количества PHP скриптов (в нашем случае это Joomla!), то это создаёт ощутимую нагрузку на сервер.

Напрашивается вывод, что  выгоднее было бы сохранять байткод в оперативный памяти. И действительно, для снижения нагрузки от постоянной компиляции одного и того же кода применяют акселераторы PHP. Все они работают по одному принципу: сохраняют в оперативной памяти (либо на диске) уже скомпилированный код. Применение акселератора позволяет ускорить выполнение PHP в несколько раз, а значит, и скорость загрузки страниц сайта тоже возрастёт.

Я покажу установку и базовую настройку одного из таких ускорителей, а именно APC. Кстати я даже где-то читал, что этот акселератор советуют разработчики Joomla! Итак, установим APC на домашний сервер. Для этого выполним в консоли команду

apt-get install php-apc

По умолчанию для кеша в настройках APC выделено достаточно памяти, но при необходимости можно увеличить это значение. Для этого отредактируем конфигурационный файл:

nano /etc/php5/conf.d/apc.ini

И добавим в него строку

apc.shm_size=128

Это количество выделенной под кеш памяти в мегабайтах. После сохранения изменений необходимо перезапустить apache:

/etc/init.d/apache2 restart

Теперь давайте проверим работу акселератора. В APC есть полезная опция, позволяющая визуально наблюдать в браузере использование кеша этим акселератором и видеть все его настройки. Для этого нужно закачать в корень сайта файл apc.php (этот файл можно найти в папке, в которой находится apc после установки, либо скачать по ссылке ниже) и обратиться к нему, дописав в браузере к домену сайта имя файла http://ваш-домен.ru/apc.php.

Скачать - apc.php

Вы увидите полную информацию об использовании кеша в наглядном виде (так же, как на этом скриншоте).

Это позволяет отлаживать режимы работы акселератора, подстраивать его под свой проект. После установки на сервер акселератора в Joomla! можно использовать APC в качестве обработчика кеширования. Для этого в общих настройках выберите Alternative PHP Cache.

Не рекомендую включать акселератор для обработчика сессий, иначе невозможно будет редактировать материалы и в админку тоже уже не попадёте. Хотя настроек у APC очень много, но думаю, для первого знакомства с ним достаточно этой информации. В дальнейшем расскажу о более тонкой настройке.

Добавить комментарий


cooltext1694913428.png