WordPress як правильно налаштувати

Блог про Linux, Bash та інші інформаційні технології

Як правильно настроїти WordPress для його швидкої роботи? WordPress — одна з найпопулярніших систем керування контентом (CMS), але, на жаль, потрібно вміти її правильно налаштовувати, щоб забезпечити максимальну швидкість роботи та мінімальний час відгуку. Це дозволить зокрема заощадити на вартості хостингу. Здавалося б, нічого складного. Беремо сервер, ставимо пакети, завантажуємо новий WordPress, встановлюємо його, і все. Але насправді все не так просто. Для налаштування сервера для швидкої та ефективної роботи сайту на базі системи керування контентом WordPress знадобиться таке:

  • Сервер з операційною системою Debian GNU/Linux 8 (Jessie)
  • Система управління базами даних MariaDB чи MySQL
  • PHP-FPM + PHP-APC
  • Веб-сервер Nginx
  • Сам WordPress останньої версії,
  • Вже відома система видачі цифрових сертифікатів Let's Encrypt
  • деякі плагіни для WordPress

Сервер з операційною системою Debian GNU/Linux 8 (Jessie)

В принципі можете вибирати будь-який сервер, який вам більше подобається. Чому я рекомендую Debian як операційну систему? Тому що він відмінно підходить для продакшен-конфігурацій завдяки тому, що стабільний реліз вже ретельно відтестований, і ймовірність будь-яких несподіванок дуже низька. Плюс величезна кількість інформації, велике ком'юніті та дуже швидке виправлення вразливостей. А також тому, що Debian є батьком Ubuntu, яку свого часу досить широко піарили, завдяки чому це досить відомий дистрибутив і він схожий на Debian, хоча відмінностей також вистачає.

Найголовніше - нам потрібен окремийсервер, щоб можна було налаштовувати все необхідне, що не можна налаштувати на так званому шаред-хостингу.

І потім виконуємо команду

Система управління базами даних

Як система управління базами даних (СУБД) я рекомендую MariaDB або MySQL. Чому MariaDB? Ось чому. Однак деякі додатки, якщо ви їх ставите з пакетів, вимагають залежно саме MySQL (пакет mysql-server), тому, якщо ви щось таке поставили на сервер (наприклад, MediaWiki), то вам має сенс поставити саме MySQL (пакет mysql -Server). Ставимо пакети:

За залежностями встановиться ще з десяток пакетів. У процесі інсталяції буде запрошено пароль користувача root. Це не той самий root, який використовується в системі, тому з метою безпеки рекомендується використовувати інший пароль.

Після встановлення пам'ятаємо, що пам'яті у нас всього 512 Mb, що не дуже багато, і в залежності від навантаження на сайт, можливо доведеться зменшити розміри буферів БД для зниження споживання пам'яті. Для цього у файлі /etc/mysql/my.cnf запам'ятайте такі рядки:

Наступне, що ставимо після СУБД, це PHP-FPM. Що це таке? Це PHP FastCGI Process Manager, менеджер процесів для бінарного протоколу FastCGI, що використовується для взаємодії програм з веб-сервером. Він працює дуже швидко в порівнянні з модулями для веб-серверів, і добре працює з веб-сервером Nginx, який ми будемо використовувати. Встановлюємо пакети:

Після встановлення йдемо в директорію /etc/php5/fpm. Робимо резервну копію директорії pool.d:

Тепер у директорії pool.d (/etc/php5/fpm/pool.d) видаляємо файл www.conf і створюємо там файл wordpress.conf наступного змісту:

І тепер рестартуємо php5-fpm:

APCu – це Alternative PHP Cache foruserland. Це швидке рішення для кешування PHP локально. Може використовуватися разом з memcached. Потрібен цей кеш для того, щоб не генерувати сторінки щоразу, а згенерувати один раз і віддавати потім багато разів. Генерація помітно повільніша, ніж віддача з кешу.

Встановлення та налаштування Nginx

Чому саме Nginx? Ну, тут багато всяких причин: він витрачає відносно мало ресурсів, добре працює з FastCGI, вміє працювати з memcached, вміє працювати з дисковим кешем, працює при необхідності з бекендом як реверс-проксі, дуже надійний, швидкий і гнучкий у налаштуванні.

Після встановлення створюємо конфігураційний файл /etc/nginx/sites-available/wordpress і записуємо в нього наступне (не забуваючи змінити "freesw.cf" на назву вашого домену):

Переходимо до директорії /etc/nginx/sites-enabled. Видаляємо дефолтний сайт, включаємо wordpress:

Наступний файл, який потрібно змінити, - це /etc/nginx/nginx.conf. Зробіть копію оригінального файлу і запишіть в nginx.conf наступне:

Таким чином, ми включили кеш nginx, компресію і налаштували віддачу статики. Сторінки спочатку будуть запитуватися з кешу, а потім, якщо їх немає в кеші, будуть запитуватись з бекенда. Якщо бекенд повернув код 404, то сторінка в кеші буде 1 хвилину, якщо 200 або 302, то 60 хвилин. З цими циферками ще можна попрацювати, подивитися, що можна покращити.

Перезапускати nginx поки не потрібно. Треба його просто зупинити, якщо він зараз працює.

Встановлення цифрового сертифіката

Навіщо сайту потрібний цифровий сертифікат? Насамперед тому, що до такого сайту більше довіри у пошукових систем та відвідувачів, відповідно, останніх буде більше. Для встановлення сертифіката скористаємося відомою системою Let'sEncrypt» та програмним пакетом certbot. Насамперед додаємо репозиторій для встановлення пакетів. Створюємо файл /etc/apt/sources.list.d/certbot.list та записуємо в нього наступне:

Після цього оновлюємо список пактів та встановлюємо необхідні пакети:

Після того, як пакети встановляться, нам треба створити сертифікат. Даємо команду:

Розпочнеться процес верифікації та встановлення цифрового сертифіката.

можна

Вибираємо другий варіант – підняти тимчасовий веб-сервер для верифікації.

можна

налаштувати

даних

кнопку

Вводимо наше доменне ім'я, натискаємо ОК. На цьому все. Сертифікат та ключ лежать там, де ми вже на них чекаємо. Тепер можна стартувати nginx.

І тепер залишилося додати завдання у крон для автоматичного оновлення сертифіката. Додаємо у файл /etc/crontab рядок:

Встановлення WordPress

Тепер можна встановлювати безпосередньо WordPress. Спочатку створимо базу даних для WordPress та користувача, під яким він буде працювати з цією базою даних.

Тепер встановлюватимемо вордпрес. Переходимо до директорії /var/www:

Завантажуємо з офіційного сайту останню версію WordPress:

Коли файл скачається розпаковуємо його:

З'явиться нова директорія Wordpress. Архів після розпакування можна видалити.

Залишилося видати права на цю директорію користувачеві www-data

налаштувати

Вибираємо мову (у моєму випадку українську), клацаємо кнопку «Продовжити».

можна

Читаємо все, що написано, переконуємось, що ми вже знаємо все необхідне, натискаємо «Вперед!».

кнопку

Вводимо назву бази даних (wordpress), ім'я користувача бази даних (wordpress), пароль (який ми вводили для виділення прав на базу даних користувачеві wordpress). Сервербази даних залишаємо localhost, префікс таблиць залишаємо "wp_". Натискаємо кнопку «Надіслати».

даних

Побачимо повідомлення про те, що можна запускати інсталяцію. Натискаємо кнопку "Запустити установку".

правильно

wordpress

Після закінчення установки ви побачите ось таке вітання. Натискаємо кнопку «Увійти» та переходимо до сторінки логіну. Після введення логіну та пароля ви потрапите в панель управління.

даних

Установка плагіна JetPack для WordPress

Плагін JetPack робить багато цікавого, але нас найбільше цікавить можливість використання CDN від WordPress з назвою Proton. У меню «Плагіни» вибираємо «Додати новий». На сторінці бачимо ось такий плагін:

кнопку

Натискаємо кнопку "Встановити". Після встановлення напис на кнопці зміниться на "Активувати". Натискаємо її. Нас перенаправляє на таку сторінку:

кнопку

Натискаємо кнопку "Підключення до WordPress.com". Якщо ви вже зареєстровані, то потрібно лише натиснути кнопку «Approve», якщо ні, то доведеться спочатку зареєструвати, що я і рекомендую. Після цього вас перенаправить назад до адмін-панелі вашого сайту.

можна

Натискаємо кнопку "Активувати рекомендовані функції". Буде активовано такі функції:

  • Блокування несанкціонованих спроб входу
  • Ефективна робота із зображеннями (Proton)

Додатково можна включити «Моніторинг простою», щоб отримувати повідомлення електронною поштою про те, що ваш сайт недоступний.

Плагін Akismet

налаштувати

Трохи вище я вже написав, навіщо він потрібний. Тепер його треба активувати. Переходимо до «Плагінів» -> «Встановлені» та натискаємо «Активувати». Після активації вам потрібно отримати ключ API.

Тепер перейдемо довстановлення плагіна для кешування.

Встановлення плагіна W3 Total Cache

У панелі меню «Плагіни» -> «Додати новий» у пошуку набираємо «W3 Total Cache», встановлюємо та активуємо.

налаштувати

Цей плагін дозволяє дуже детально налаштувати кешування для вашого сайту. Так, це займе деякий час, але це напевно того варте. Потрібно тільки пам'ятати про що при використанні цього плагіна: при включенні якоїсь настройки ретельно перевіряйте, чи все правильно працює.

На закінчення

Можливо, це не найкраща конфігурація WordPress, але це дуже непоганий варіант для початку, який дозволить не тільки заощадити гроші на хостингу, а й прискорити роботу вашого сайту мінімальними зусиллями. Надалі ви можете оптимізувати роботу сайту далі. Пам'ятайте лише про те, що не всі плагіни однаково корисні.