Форум русской поддержки Joomla!® CMS
21.01.2017, 17:17:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: 1 2 3 [4]   Вниз
  Добавить закладку  |  Печать  
Автор

Оптимизация Joomla (черновик)

 (Прочитано 117913 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Physicist
Support Team
*****

Репутация: +185/-0
Offline Offline

Пол: Мужской
Сообщений: 962


Рябов Денис


« : 24.01.2008, 20:20:00 »

Я решил написать статью по оптимизации Joomla для моего блога joomup.com/blog. А пока статья находится в процессе написания, выкладываю на всеобщее обозрение ее «черновик» (даже скорее «краткое содержание первой части»). Любые дополнения и критика приветствуются.


Сегодняшняя статья должна заинтересовать многих, так как она посвящена проблеме оптимизации Joomla, т.е. повышению ее производительности.

Хочу сразу предупредить, что повысить производительность Joomla на несколько порядков только за счет оптимизации вряд ли удастся. Поэтому задумайтесь, может быть имеет смысл сменить хостинг, перейти на виртуальный сервер, на выделенный сервер, проапгрейдить сервер, использовать несколько серверов (тут можно отметить pdf-руководство Joomla Cluster на forum.joomla.org), и т.д.

В этой статье я постараюсь описать только то, что можно сделать, не внося изменений в файлы 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 написано на сайте ircmaxell.com: тут и тут.

5.* Оптимизация MySQL. По-умолчанию MySQL устанавливается с минимальными настройками. Попробуйте изменить эти настройки в соответствии с возможностями вашего сервера (советую прочитать статьи на joomlaperformance.com и profitpapers.com). Хорошим способом ускорить работу 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. Подумайте о переносе картинок в наполненном графикой популярном посте на отдельный сервер или хостинг. Можно использовать мощности бесплатных сервисов (например flickr) и разместить изображения там. Точно также можно перенести и многие другие файлы.

7. Если вы используете свой сервер также в качестве DNS-сервера, то уменьшить нагрузку на сервер можно, вынеся DNS на отдельный сервер.

8. Не забудьте включить gzip-сжатие, если хотите уменьшить трафик (правда, это слегка увеличит нагрузку на процессор).  Кстати, это можно сделать не только для html-страниц, генерируемых Joomla, но и для всех css и js файлов. Если на вашем сервере установлен Apache 2, то просто добавьте следующие директивы в ваш файл .htaccess:
Код:
<FilesMatch "\.(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>

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*. Добавьте индексы для таблиц в БД. Тут есть несколько альтернативных предложений по оптимизации: ircmaxell.com и forum.joomla.org (перевод на русский — joomlaportal.ru). Я бы рекомендовал те, что описаны на forum.joomla.org, т.к. на ircmaxell.com уж очень большие индексы создаются.

16*. Не забывайте, что при частом изменении таблиц БД они сильно возрастают в размере, поэтому время поиска по БД тоже возрастает. Поэтому БД нужно регулярно оптимизировать (по сути — сжимать). Установите мамбот OptimizeTables (от smart'а) или выполняйте оптимизацию таблиц вручную (выделите все таблицы через phpMyAdmin, и выполните команды repair и optimize).

17*. Можно сменить тип таблицы jos_session на memory:
Код:
alter table jos_session type=memory;
(если ваша версия Joomla использует другой префикс таблиц, то не забудьте заменить «jos» на него).

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. Оптимизируйте используемый шаблон (например, удалите лишние пробелы и переводы строк).
« Последнее редактирование: 13.06.2008, 19:22:01 от Physicist » Записан
 
llektor
Давно я тут
****

Репутация: +2/-2
Offline Offline

Сообщений: 214



« Ответ #91 : 06.07.2010, 20:14:15 »


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

Хотел поинтересовастья если можно,правда ли что при включеном встроеным стандартном Joomla GZIP сайт уязвим?
Спасибо
Записан
dreamwind
Осваиваюсь на форуме
***

Репутация: +27/-13
Offline Offline

Сообщений: 166



« Ответ #92 : 06.07.2010, 22:02:10 »

стандартном Joomla GZIP сайт уязвим?
Нет, не уязвим. Точнее, само наличие Joomla делает сайт более уязвимым, чем включенный гзип
Записан
llektor
Давно я тут
****

Репутация: +2/-2
Offline Offline

Сообщений: 214



« Ответ #93 : 07.07.2010, 06:20:33 »

Нет, не уязвим. Точнее, само наличие Joomla делает сайт более уязвимым, чем включенный гзип
Спасибо
На форуме Joomla пишут тут что при включеном стандартном GZIP сжатии сайт уязвим
Ну насчет уязвимости самой Joomla не совсем так,этот движок при правильном подходе совсем не плох
И при желании можно ломануть любой сайт,нет не уязвимых скриптов,вот Google недавно сломали,было бы желании
Записан
dreamwind
Осваиваюсь на форуме
***

Репутация: +27/-13
Offline Offline

Сообщений: 166



« Ответ #94 : 07.07.2010, 08:26:34 »

Видимо, идиотизм в наше время уже не лечится стандартными способами.

Цитата со ссылки (и далее из первоисточника).
Цитировать
in the above url given, theres a discussion on security issues and its fixes
Цитировать
gzip 1.2.4 may crash when an input file name is too long (over 1020 characters).
А теперь объясните мне на пальцах, как уязвимость консольного gzip к длине файлов влияет на безопасность gzdeflate в PHP. Нет, правда Azn
Записан
Physicist
Support Team
*****

Репутация: +185/-0
Offline Offline

Пол: Мужской
Сообщений: 962


Рябов Денис


« Ответ #95 : 07.07.2010, 10:30:49 »

Цитата со ссылки (и далее из первоисточника).А теперь объясните мне на пальцах, как уязвимость консольного gzip к длине файлов влияет на безопасность gzdeflate в PHP. Нет, правда Azn

Ну, это же forum.joomla.org — там порой и не такой маразм можно встретить.

PS. Я даже полез в исходник gzip.c смотреть, что же это за ошибка такая. Оказалось, что эта ошибка может возникнуть только при запуске консольного gzip с ключем -recursive и большой глубине вложенности папок, такой, суммарный путь к файлу не помещается в MAX_PATH_LEN символов.
Записан
llektor
Давно я тут
****

Репутация: +2/-2
Offline Offline

Сообщений: 214



« Ответ #96 : 22.07.2010, 05:56:03 »

Нет. У меня до сих пор в планах перевод блога на Joomla!1.5 и создание отдельного сайта посвященного оптимизации Joomla, так что я сейчас никаие материалы в блог не выкладываю. Вот только на все задуманное никак времени не хватает.
Хотел бы поинтетесоватся
Я включил кеш и GZIP теперь на некоторых страница фото не отаброжаются,то есть,на некоторых страница у фото поменялсь адреса,например у фото такой адрес http://site.com/images/stories/food/lititbitlogo.png а натеокторых страницах адрес этого же фото но уже http://site.com/index.php/download/images/stories/food/lititbitlogo.png добавилас лишнее слово download
В принципе такой адрес есть http://site.com/index.php/he/download/download-music,непонятно откуда этот download прописывается в адрес фото

И еще у меня пропали иконки в медиа менеджере,но это не связано с включением кеша,это у меня до этого когда я востанавливам сайт с резервной копии,когда сайт сломали,думаю напишу что ненадоедать лишний раз с вопросами
Иконки пропали именно в медиа менеджере
К стати такое стало у меня после того когда я востанавил сайт  резервной копии,до этого работало все нормально
Проверил мудули иконок в админ панели они включены

Вот скриншот нормальной панели медиа менеджера
Тут скриншот где как нормально работает панель

А вот тут уже где не норамльно,на данный момент у меня так
Тут скриншот другой где неправильно работает панель


Я как понял,иконки находяться тут administrator/components/com_media/images,помотрел изоброжения и конки все наместе,немогу понять в чем причина
Нет не фото папок не иконок крестики удалить,вообщем на скриншотах все наглядно видно
Люди добрые отзовитесь,помогите
Надеюсь мою белеберду поняли,не знаю как еще обьяснить  Roll Eyes
Помогите пожалуйста,а то что страшная панель меда менеджера нехочется заходить в нее
Не сердитесь за мое неграмотное письмо
Заранее благодорю
« Последнее редактирование: 22.07.2010, 06:05:49 от llektor » Записан
Physicist
Support Team
*****

Репутация: +185/-0
Offline Offline

Пол: Мужской
Сообщений: 962


Рябов Денис


« Ответ #97 : 22.07.2010, 09:15:33 »

Скорее всего на картинки даны относительные ссылки (images/stories/food/lititbitlogo.png вместо /images/stories/food/lititbitlogo.png).
Записан
llektor
Давно я тут
****

Репутация: +2/-2
Offline Offline

Сообщений: 214



« Ответ #98 : 23.07.2010, 16:06:28 »

Скорее всего на картинки даны относительные ссылки (images/stories/food/lititbitlogo.png вместо /images/stories/food/lititbitlogo.png).
Спасибо
Вообще то я переустановил сайт стао криво работать,эти хакеры с Турции задолбали уже,ломают Израильские сайты в в подержку братьям с Азы,а каким образом они помагают непонятно,ломают Израильские сайты так этим не очень то и поможешь,если только маральною.Лудьше пару коппек послали
Записан
llektor
Давно я тут
****

Репутация: +2/-2
Offline Offline

Сообщений: 214



« Ответ #99 : 23.07.2010, 16:06:50 »

Спасибо
Вообщем я переустановил сайт стао криво работать,эти хакеры с Турции задолбали уже,ломают Израильские сайты в в подержку братьям с Азы,а каким образом они помагают непонятно,ломают Израильские сайты так этим не очень то и поможешь,если только маральною.Лудьше пару коппек послали
Записан
slepoy
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Сообщений: 705


Тотальная шизофазия


« Ответ #100 : 18.01.2015, 05:19:16 »

Здравствуйте.
Приведите, пожалуйста, пример запроса для команд repair и optimize?
Спасибо.
Записан
Страниц: 1 2 3 [4]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet