Міні-Сервер своїми руками – це просто! Оптимізація joomla
Кожен, хто створює сайт на joomla рано чи пізно стикається з проблемою оптимізації, яка включає пошукову оптимізацію та програмного коду для підвищення її продуктивності.
У цій статті я спробую описати тільки те, що можна зробити, не вносячи змін до файлів Joomla (тобто ви зможете безболісно робити наступні оновлення Joomla). Найсуттєвіші поради відзначені знаком «*». Спочатку кілька порад, які застосовуються до будь-якої CMS, написаної на PHP:
1*. Використовуйте оновлене програмне забезпечення. Наприклад, PHP 5.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, наприклад:
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» на нього.
До речі, в robots.txt можна також обмежити (про всяк випадок) доступ пошукових систем до файлів Joomla:
25. Перед використанням будь-якого розширення ніколи не забувайте перевірити, чи немає у нього більш швидких аналогів. 26. Оптимізуйте шаблон, що використовується (наприклад, видаліть зайві прогалини та переклади рядків).