Оптимизация работы Joomla на сервере » Всё для CMS Joomla
Сегодняшнюю тему про Joomla CMS можно назвать, пожалуй, одной из самых важных и востребованных, потому как мы будем обсуждать оптимизацию работы самого движка Joomla.
Проще говоря, если перед вами стоит задача максимально снизить нагрузку движка на хостинг или вы только начинаете об этом задумываться, эта статья именно для вас.
Оптимизация работы сервера для Joomla
1. Постоянно следите за тем программным обеспечением, которое установлено на вашем сервере и соответственно позволяет запускать CMS. Так, например, интерпретатор PHP версии 5.2 работает почти в 2 раза быстрее, чем тот же PHP 4.4. Конечно же, в большинстве случаев, установку версии PHP вы не сможете контролировать, если покупаете виртуальный сервер, но если в вашем распоряжении сервер – стоит об этот вовремя задуматься.
2. Используйте PHP акселлераторы. Среди самых популярных в настоящее время можно выделить такие какAlternative PHP Cache, eAccelerator, XCache, Zend Optimizer. По данным большого числа тестов, самая большое быстродействие CMS Joomla с использованием APC и PHP версии 5.2.2, во всяком случае на данный момент.
3. Оптимизация Apache. Если вы используете сервер Apache, оптимизируйте его под свои нужды. Большинство веб мастеров просто забывают про данный способ, но чаще всего он даёт самый весомый результат и делает Joomla очень быстрой.
5. Не стоит так же забывать про оптимизацию СУБД MySQL, чаще всего Joomla работает именно на ней, а значит данный пункт будет полезен всем. MySQL устанавливается на сервере с минимальными настройками, но на купленном вами сервере могут быть установлены многие другие функции, которые будут тормозить всю систему. Так, например, отличным вариантом ускорения работы MySQL является настройка кэширования запросов.
6. Если вы начинаете оптимизацию работы крупного или перспективного проекта, который в скором будущем может принести несколько тысяч или даже десятков тысяч посетителей в сутки, подумайте о переносе картинок на отдельный сервер. Можно использовать мощности бесплатных сервисов и разместить изображения там. Точно также можно перенести и многие другие файлы, например, файловые архивы, видео ролики и другие файлы. Данный пример часто используется на музыкальных, видео или портала с фотографиями.
7. Не стоит использовать сервер также в качестве DNS-сервера – вынесите его на отдельный сервер.
8. Не забудьте включить gzip-сжатие, если хотите уменьшить трафик (правда, это слегка увеличит нагрузку на процессор). Прежде чем определиться, стоит ли использовать сжатие или нет, стоит потратить несколько дней на тестирование работы Joomla на нескольких режимах.
Например, есть простой, но вместе с тем очень действенный способ уменьшить нагрузку на движок. Самое интересное, что это можно сделать не только для html, которые генерирует CMS, но и для css и js. Если на вашем сервере установлен Apache 2, стоит попробовать прописать в .htaccess следующий код:
- SetOutputFilter DEFLATE
9. Совершенно не к чему каждый раз загружать одни и те же css/js файлы и графику.
10. Оптимизируйте графику в шаблоне. Некоторые сайты славятся тем, что загружают несколько сотен килобайт картинок. Вообще, проверяйте объем загружаемой информации и время загрузки на сайте.
11. Старайтесь уменьшить количество запросов к серверу. Постарайтесь объединить имеющиеся css-файлы в один. То же самое относится и к js-скриптам. Да и сами файлы очистить от лишнего мусора.
12. Для более быстрого отображения страницы в браузере желательно, чтобы на странице не было ошибок в HTML и CSS вёрстке страниц сайта. Проверить правильность вашего кода можно на сайте validator.w3.org – этот сайт проверить соответствие всех ваших конструкций по стандартам W3C.
13. Добавьте favicon.ico и favicon.gif в корень сайта, т.к. некоторые браузеры сначала запрашивают их, а не те, которые указаны в коде страницы (их не так много, но в логах сервера эти запросы появляются с завидной регулярностью).
Оптимизация работы Joomla
1. Включите кэширование для всех модулей, для которых это возможно. Время жизни кэша определите из условия: сколько времени вы готовы ждать, пока добавленная новость появится в модуле последних новостей? Для одних сайтов это будет 10 минут, для других – час, для третьих – сутки. (Если хотите, вот числа: в «свежее» установленной Joomla при посещении главной страницы генерируется 36 запросов, а с включенным кэшированием модулей — всего 13 запросов).
2. Добавьте индексы для таблиц в БД. Тут есть несколько альтернативных предложений по оптимизации: ircmaxell.com и forum.joomla.org (перевод на русский — joomlaportal.ru). Я бы рекомендовал те, что описаны на forum.joomla.org, т.к. на ircmaxell.com уж очень большие индексы создаются.
3. Не забывайте, что при частом изменении таблиц БД они сильно возрастают в размере, поэтому время поиска по БД тоже возрастает. Поэтому БД нужно регулярно оптимизировать (по сути — сжимать). Установите мамбот OptimizeTables (от smart’а) или выполняйте оптимизацию таблиц вручную (выделите все таблицы через phpMyAdmin, и выполните команды repair и optimize).
4. Можно сменить тип таблицы jos_session на memory:
- alter table jos_session type=memory;
(если ваша версия Joomla использует другой префикс таблиц, то не забудьте заменить «jos» на него).
5. Отключите встроенную статистику. В большинстве случаев статистика, предоставляемая хостером, дает намного больше информации о посетителях. Но можно оставить статистику поисковых запросов.
6. Удалите лишние (неиспользуемые) расширения (компоненты, модули, мамботы).
7. Много запросов образуется при формировании списки новостей в различных модулях (из-за получения Itemid для каждой новости). Это можно ускорить, используя постоянный Itemid, появившийся в 1.0.12.
8. Много запросов зачастую генерируют сторонние SEF-компоненты. При большой нагрузке лучше использовать встроенный SEF, или не использовать SEF вовсе (кстати, встроенный SEF практически не требователен к ресурсам; более того, по данным теста joomla.org Joomla!1.5 с включенным SEF работает быстрее, чем с отключенным).
9. Старайтесь не использовать в настройках пунктов меню «Category Name Linkable» («Названия категорий в виде ссылок»).
10. Для полей id в таблицах БД можно вместо типа int(11) указать smallint unsigned, что приводит к небольшому уменьшению объема памяти, требуемого для хранения БД.
11. Очень часто самую большую нагрузку создают поисковые роботы, которые во время индексации страниц сайта добавляют материал в свои базы. ЗА один такой приход, поисковая система может пройтись по нескольким сотням страниц сайта, тем самым за несколько минут сделав довольно серьёзную нагрузку на сервер. Чаще всего это некритично, но, если мы имеем дело с очень посещаемым ресурсом, стоит задуматься. Закройте через файл robots.txt, который служит для управления поисковым роботом, от индексации поисковыми ботами компонент com_search и файл index2.php. Также можно закрыть com_wraper и com_newsfeed, которые отвечают за новостные ленты на сайте. Кроме того, поисковые системы могут посчитать это за дублированный контент, а в перспективе пессимизировать сайт.
Ниже приведен набор правил для встроенного SEF, то есть, включённым ЧПУ, который делает внутренние ссылки на сайте более красивыми и удобными:
User-agent: *
Disallow: /index2.php?
Disallow: /component/option,com_search/
Disallow: /component/option,com_newsfeeds/
Disallow: /component/option,com_wrapper/
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /editor/
Disallow: /help/
Disallow: /includes/
Disallow: /language/
Disallow: /mambots/
Disallow: /media/
Disallow: /modules/
12. Очень часто бывает, что определённая картинка на сайте, будь это даже не часть дизайна сайта, «весит» несколько сотен килобай, в то время как могла бы весить всего лишь несколько десятков или даже меньше, если обработать её в редакторе и сохранить в другом формате.
13. И на последок, очень часто главной проблемой в скорости загрузки сайта и вообще в нагрузке сервера является плохая оптимизация шаблона для сайта. Это может касаться «жирной» графики, лишнего html и css кода, большого объёма JS скриптов.
-
Очень часто хочется запомнить какой-нибудь важный момент в своей жизни, но нет либо возможности, либо уже поздно. Лучше всего отдать такую задачу профессионалам и заказать видеосъемку выпускного в детском саду операторам с профессиональным оборудованием. Они сделают это на уровне и у вас всегда останется возможность ещё раз почувствовать приятные моменты из своей жизни.




Комментарии к «Оптимизация работы Joomla на сервере»
Очень полная и хорошо – структурированная статья! Только по многим пунктам хочется ещё парочку дополнительных!))
Force, ну так дополните! Я только ЗА.
[...] я когда-то сам писал статьи оптимизация работы Joomla на сервере и оптимизация Wordpress, которые и помогли мне [...]
Оставить комментарий