Ви можете зробити кілька кроків для підвищення продуктивності сервера. Зауважте, що деякі з них не працюватимуть з більшістю хостів, що надаються спільним доступом. Для високої продуктивності зазвичай потрібен більш тонкий зернистий контроль.
Як і у випадку будь-яких оптимізацій, ви повинні виміряти вплив, який він має на ефективність вашого сайту. Для основних оптимізацій корисні такі інструменти, як PageSpeed і YSlow (я рекомендую версії Firefox). Для більш поглибленого розуміння вам доведеться вимірювати фактичний час відгуку вашої живої системи протягом певного періоду часу.
PHP
Увімкнути кешування Opcode
Це, мабуть, найбільше, що ви можете зробити для підвищення продуктивності вашого сайту. Я рекомендую або використовувати OpCache, або APC . Конфігурація цих кешів може бути налаштована для ще більшої продуктивності на основі потреб серверів та сайтів, але просто встановлення вже є величезним стимулом.
Оновіть версію PHP
Новіша версія PHP регулярно постачається з поліпшенням продуктивності. Крім того, є ряд випадків, коли Joomla може використовувати кращий код під час роботи на більш новій версії PHP. На сьогоднішній день вам не слід використовувати PHP-версію, старшу за PHP 5.4, якщо ви дбаєте про продуктивність.
Налаштування PHP
У старих версіях PHP (<= 5.3) слід подбати про вимкнення register_globals
та magic_quotes_gpc
виграш у вільній продуктивності. На PHP> = 5.6 змініть always_populate_raw_post_data
на -1.
Розширення PHP
Joomla містить деякий код для вирішення відсутніх розширень PHP. Це завжди буде повільніше, ніж ці розширення. Для гідного підвищення продуктивності встановіть наступні розширення: mbstring
, zip
,ftp
Веб-сервер
Увімкнути gzip
Увімкнення пропускної здатності компресії на стороні сервера для ресурсів процесора. Для більшості сайтів там це правильний дзвінок. Будьте обережні лише для стиснення текстових даних, стискання двійкових даних призведе до отримання CPU без переваг пропускної здатності. Ви також можете ввімкнути стиснення в налаштуваннях Joomla, але краще, якщо ви дозволите серверу цим займатися.
Попередньо стисніть статичні ресурси
Я не кажу про мінімізацію (хоча це теж допомагає), але ви можете налаштувати Nginx та Apache на сервер вже стислих ресурсів, ефективно виключаючи хіт CPU від стиснення gzip. Бонусні бали: використовуйте Zopfli для ще менших файлів.
Використовуйте FastCGI для PHP
Більш конкретно, ви повинні використовувати php-fpm
. Це запобігає запуску PHP, коли браузер вимагає не PHP-файлу.
Використовуйте відповідні заголовки кешу
Використання Expires
заголовка може значно зменшити необхідні ресурси сервера. Адже найшвидший запит - це той, хто ніколи не робився.
Апач
Як правило, я б рекомендував використовувати Nginx для високопродуктивних сайтів. Якщо вам абсолютно потрібно використовувати Apache з якихось причин, я отримав бонусну пораду:
Вимкнути AllowOverride
Установка AllowOverride
для None
запобігає багато дискового введення - виведення і
Joomla
Не використовуйте режим FTP
Хоча це не впливає на ваші користувачі, які читають сайт, це сповільнить деякі операції, наприклад встановлення розширень.
Вимкніть невикористані розширення
Особливо це стосується плагінів, багато з яких виконуються на кожен запит. Вимкнення меню та компонентів в основному корисно при переліку доступних розширень та типів меню. Також знадобиться 5 хвилин, щоб пройти через розширення, що поставляються з ядром Joomla, і вимкнути ті, якими ви не користуєтесь.
Вимкнути Підготувати вміст
Якщо ви використовуєте безліч спеціальних модулів ( mod_custom
не на замовлення, як написано самостійно), перевірте, чи можна вимкнути Підготувати вміст у них. Це економить деяку обробку.
Використовуйте кешування
Якщо ви серйозно ставитесь до продуктивності, вам потрібно включити кешування. Особливо корисно для читання важких сайтів з багатьма анонімними користувачами. Користувачі, які зареєструвались, обійдуть більшу частину кешу, якщо їх багато, ефект не буде настільки великим.
Використовуйте альтернативний обробник сеансу
Використовуючи альтернативний обробник сеансу, ви можете звільнити вашу базу даних для більш важливих речей. Я б не рекомендував файл (заплутано називається None в налаштуваннях Joomla), оскільки це ще раз збільшить IO диска. Використання APC потенційно є найшвидшим, але збільшує ризик втратити всі дані сеансу. Правий середній край - Мемкаш. Хоча для цього потрібен додатковий процес, він надійніший за APC і набагато швидше, ніж зберігання всіх даних у базі даних
Зробіть свій сайт простим
Вам справді потрібна ця кнопка Facebook? Що з тією милою іконою, яку ніхто ніколи не бачить, бо вона частково прихована за якимсь банером? Чим менше ваш сайт відображається, тим швидше він буде. Також, де це можливо, використовуйте CSS3 замість зображень.
Різне
Встановити фавікон
Завдяки рішенню, що починається з браузера Internet Explorer 4.0, подають запит на файл, викликаний favicon.ico
кожен раз, коли користувач відвідує ваш сайт. Якщо у вас немає такого, це призводить до зайвого вводу-виводу, оскільки 404 відповідей не кешуються. Або вкажіть піктограму вашого веб-сайту мета-тегом HTML або додайте файл, викликаний favicon.ico
у веб-корінь. Не хочете фавікон? Помістіть у цьому місці прозорий PNG розміром 1х1 пікселя. Зауважте, що розширення все-таки має бути .ico
.
Оптимізуйте свої зображення
Дивовижно, яку економію можна отримати, оптимізуючи зображення, особливо файли PNG. Існує безліч інструментів, доступних для будь-якої операційної системи, особисто я використовую ImageOptim, який доступний для OS X. Основні зображення Joomla вже оптимізовані, але проходьте ваші власні зображення, особливо важливі шаблони. Ви також можете перевірити розширення, які ви використовуєте. Якщо вони з відкритим кодом, чому б вам не надіслати запит на витяг, що містить нові оптимізовані зображення?
Передовий
Якщо ви дійсно хочете все вийти, подумайте про те, як поставити лак перед своїм сайтом. Він кешує запити на ваш сайт і, якщо можливо, подає їх із власного кешу, ніколи не зачіпаючи Joomla. Це складний інструмент, але з великою потужністю. Joomla не скористається передовими функціональними можливостями, такими як Edge Side Includes (ESI), але ваш власний код міг би.