Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

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

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

В этой статье я постараюсь описать только то, что можно сделать, не внося изменений в файлы Joomla (т.е. вы сможете безболезненно делать последующие обновления Joomla). Самые «существенные» советы отмечены знаком «*». Сначала несколько советов, которые применимы к любой CMS, написанной на PHP:

1*. Используйте обновленное ПО. Например, PHP 5.2 работает почти в 2 раза быстрее, чем PHP 4.4
2*. Используйте PHP-акселлераторы. Среди самых известных можно выделить Alternative PHP Cache (APC), eAccelerator, XCache, Zend Optimizer. По данным тестов joomla.org, самая быстрая работа Joomla обеспечивается с использованием APC и PHP 5.2.2 (см. выше про производительность PHP).
3*. Оптимизация Apache. Если вы используете сервер Apache, оптимизируйте его под свои нужды (на сайте www.crucialp.com описано, как провести оптимизацию под большой трафик).
4. Не обязательно использовать сервер Apache. Вместо него можно использовать более быстрый Lighttpd. Об использовании Joomla с Lighttpd.
5*. Оптимизация MySQL. По-умолчанию MySQL устанавливается с минимальными настройками. Попробуйте изменить эти настройки в соответствии с возможностями вашего сервера. Хорошим способом ускорить работу MySQL является настройка кэширования запросов. Текущее состояние параметров кэша можно увидеть, выполнив команду "SHOW STATUS LIKE 'qcache%';". Параметр query_cache_type должен иметь ненулевое значение, а в параметре query_cache_size должен быть указан размер кэша (именно это значение вам придется подобрать для обеспечения наилучшей производительности). Все эти параметры задаются в вашем файле my.cnf, например:

query_cache_type = 1
query_cache_size = 20M
query_cache_limit = 2M

Уделите внимание параметру max_connections. Увеличьте его значение, иначе вас очень быстро настигнет проблема "too many connections".
6. Подумайте о переносе картинок в наполненном графикой популярном посте на отдельный сервер или хостинг. Можно использовать мощности бесплатных сервисов и разместить изображения там. Точно также можно перенести и многие другие файлы.
7. Если вы используете свой сервер также в качестве DNS-сервера, то уменьшить нагрузку на сервер можно, вынеся DNS на отдельный сервер.
8. Не забудьте включить gzip-сжатие, если хотите уменьшить трафик (правда, это слегка увеличит нагрузку на процессор). Кстати, это можно сделать не только для html-страниц, генерируемых Joomla, но и для всех css и js файлов. Если на вашем сервере установлен Apache 2, то просто добавьте следующие директивы в ваш файл .htaccess:


SetOutputFilter DEFLATE

9. Совершенно не к чему каждый раз загружать одни и те же css/js файлы и графику. Как правильно поместить их в кэш браузера, описано на apachedev.ru, а для знающих английский рекомендую статью на askapache.com.
10. Оптимизируйте графику в шаблоне. Некоторые сайты славятся тем, что загружают несколько сотен килобайт картинок. Вообще, проверяйте объем загружаемой информации и время загрузки на сайте http://www.websiteoptimization.com/services/analyze/index.html.
11. Старайтесь уменьшить количество запросов к серверу. Постарайтесь объединить имеющиеся css-файлы в один. То же самое относится и к js-скриптам. Да и сами файлы очистить от лишнего мусора.
12. Для более быстрого отображения страницы в браузере желательно, чтобы на странице не было ошибок. Вы можете проверить свой сайт, например, на validator.w3.org.
13?. Добавьте favicon.ico и favicon.gif в корень сайта, т.к. некоторые браузеры сначала запрашивают их, а не те, которые указаны в коде страницы (их не так много, но в логах сервера эти запросы появляются с завидной регулярностью).

Теперь перейдем к советам, относящимся к собственно Joomla.
14*. Включите кэширование для всех модулей, для которых это возможно. Время жизни кэша определите из условия: сколько времени вы готовы ждать, пока добавленная новость появится в модуле последних новостей? Для одних сайтов это будет 10 минут, для других – час, для третьих – сутки. (Если хотите, вот числа: в «свежеустановленной» Joomla при посещении главной страницы генерируется 36 запросов, а с включенным кэшированием модулей — всего 13 запросов).
15*. Добавьте индексы для таблиц в БД. Тут есть несколько альтернативных предложений по оптимизации - joomlaportal.ru.
16*. Не забывайте, что при частом изменении таблиц БД они сильно возрастают в размере, поэтому время поиска по БД тоже возрастает. Поэтому БД нужно регулярно оптимизировать (по сути — сжимать). Установите мамбот OptimizeTables (от smart'а) или выполняйте оптимизацию таблиц вручную (выделите все таблицы через phpMyAdmin, и выполните команды repair и optimize).
17*. Можно сменить тип таблицы jos_session на memory. Если ваша версия Joomla использует другой префикс таблиц, то не забудьте заменить «jos» на него.

alter table jos_session type=memory;

18*. Отключите встроенную статистику. В большинстве случаев статистика, предоставляемая хостер;ом, дает намного больше информации о посетителях. Но можно оставить статистику поисковых запросов.
19. Удалите лишние (неиспользуемые) расширения (компоненты, модули, мамботы).
20. Много запросов образуется при формировании списки новостей в различных модулях (из-за получения Itemid для каждой новости). Это можно ускорить, используя постоянный Itemid, появившийся в 1.0.12.
21. Много запросов зачастую генерируют сторонние SEF-компоненты. При большой нагрузке лучше использовать встроенный SEF, или не использовать SEF вовсе (кстати, встроенный SEF практически не требователен к ресурсам; более того, по данным теста joomla.org Joomla!1.5 с включенным SEF работает быстрее, чем с отключенным).
22. Старайтесь не использовать в настройках пунктов меню «Category Name Linkable» («Названия категорий в виде ссылок»).
23. Для полей id в таблицах БД можно вместо типа int(11) указать smallint unsigned, что приводит к небольшому уменьшению объема памяти, требуемого для хранения БД.
24. Закройте через 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/

Кстати, в robots.txt можно также ограничить (на всякий случай) доступ поисковиков к файлам Joomla:

Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /editor/
Disallow: /help/
Disallow: /includes/
Disallow: /language/
Disallow: /mambots/
Disallow: /media/
Disallow: /modules/


25. Перед использованием любого расширения никогда не забывайте проверить, нет ли у него более быстрых аналогов.
26. Оптимизируйте используемый шаблон (например, удалите лишние пробелы и переводы строк).


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk
Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.