Розгорніть вебсайти на WordPress (WP) на DigitalOcean (DO) менш ніж за 10 хвилин.
Початківці у блогосфері або власники вебсайтів часто задаються питанням, як пришвидшити завантаження їхніх ресурсів на спільному хостингу, усвідомлюючи його обмеження. Після певного часу розчарування, вони починають розглядати можливість переходу зі спільного хостингу на хмарний.
Однією з перших платформ хмарного хостингу, яка приходить на думку, є DigitalOcean.
DO є чудовим варіантом для старту: він доступніший за AWS та GCP, має хорошу масштабованість, високу швидкість та пропонує весь необхідний функціонал.
Проте, конфігурація сайту може стати викликом, якщо ви не маєте досвіду в системному адмініструванні. DO надає вам, по суті, операційну систему, і вам доведеться самостійно налаштовувати все необхідне. Альтернативно, ви можете скористатися Cloudways, що дозволяє розгорнути вебсервер DigitalOcean за допомогою декількох кліків, якщо вам не до вподоби заглиблюватися в технічні деталі налаштування сервера. Вони також пропонують преміум-рішення DigitalOcean Droplets.
Отримавши чимало запитів щодо налаштування WP сайту на DO, я вирішив розробити покрокову інструкцію, яка буде корисною для багатьох користувачів.
Перед тим, як перейти до технічної частини, зауважу: DO не є реєстратором доменних імен. Це означає, що ви не зможете придбати домен у них. Я припускаю, що ви вже маєте домен, і якщо його немає, ви можете придбати його, наприклад, на Namecheap.
Отже, почнемо…
Існує декілька способів розгорнути WordPress, але один з найпростіших, який я знайшов, – це використання EasyEngine. У цьому посібнику ми будемо використовувати EasyEngine для встановлення необхідного програмного забезпечення та створення WP сайту.
Отримання сервера DigitalOcean
DO має дата-центри у багатьох локаціях по всьому світу. Обирайте найближчий до вашої аудиторії.
- Увійдіть (зареєструйтесь, якщо у вас ще немає облікового запису) до DigitalOcean.
- Створіть новий дроплет та оберіть Ubuntu 18.x як операційну систему.
- Виберіть тарифний план дроплета, виходячи з ваших вимог, але для початку 2 або 3 Гб оперативної пам’яті буде достатньо.
- Оберіть моніторинг як додаткову опцію.
- Введіть ім’я хоста і натисніть “Створити”.
Зачекайте приблизно хвилину, і ви побачите новостворений сервер у списку.
DO надішле облікові дані доступу до сервера на вашу електронну адресу, вказану при реєстрації.
- Увійдіть на сервер, використовуючи отримані дані (IP-адреса та логін/пароль) через SSH-клієнт.
При першому вході система запропонує вам змінити пароль. Це стандартна практика, і рекомендується встановити надійний пароль.
Встановлення EasyEngine
Після того, як сервер готовий, час встановити EasyEngine (EE). EE – це потужний скрипт автоматизації, що дозволяє швидко створювати різні типи сайтів за допомогою простих команд. Перевагою EE є те, що вам не потрібно турбуватися про налаштування окремих компонентів, таких як Nginx, MariaDB, Redis, PHP і т.д. Усе відбувається автоматично у фоновому режимі, і це абсолютно БЕЗКОШТОВНО!
Остання версія EE використовує Docker, але вам знову ж таки не потрібно розуміти як він працює. EE готовий до використання і активно застосовується тисячами вебсайтів з високою відвідуваністю.
Дозвольте мені показати, як просто використовувати EasyEngine. Припускаю, що ви вже увійшли до свого сервера DigitalOcean.
- Оновимо пакунки, виконавши команду нижче:
apt-get update
- І встановимо EE за допомогою цієї команди:
wget -qO ee rt.cx/ee4 && sudo bash ee
Встановлення необхідного програмного забезпечення у фоновому режимі займе деякий час. Після завершення ви побачите командний рядок.
Status: Downloaded newer image for easyengine/redis:v4.0.0
+-------------------+----------------------------------------------------------------------------+
| OS | Linux 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 |
| Shell | /bin/bash |
| PHP binary | /usr/bin/php7.2 |
| PHP version | 7.2.15-1+ubuntu18.04.1+deb.sury.org+1 |
| php.ini used | /etc/php/7.2/cli/php.ini |
| EE root dir | phar://ee.phar |
| EE vendor dir | phar://ee.phar/vendor |
| EE phar path | /root |
| EE packages dir | |
| EE global config | |
| EE project config | |
| EE version | 4.0.10 |
+-------------------+----------------------------------------------------------------------------+
-----> Run "ee help site" for more information on how to create a site.
root@:~#
На цьому етапі EasyEngine встановлено і готово до використання.
Створення вебсайту WordPress
EE має функціональність для створення сайту WordPress з кешуванням Redis, що позитивно впливає на продуктивність. Я використовую Redis на techukraine.net і задоволений результатом, тому рекомендую спробувати.
Створимо WP сайт на домені з кешуванням Redis.
ee site create geekflarelab.com --type=wp --cache
Вищенаведена команда використовує EE для створення сайту з доменним ім’ям geekflarelab.com, типу WordPress та з увімкненим кешуванням.
Це займе декілька секунд, після чого ви побачите повідомлення про успішне виконання операції, як показано нижче.
Configuring project.
Creating WordPress site geekflarelab.com
Copying configuration files.
Starting site's services.
Downloading and configuring WordPress.
Moved /var/www/htdocs/wp-config.php to /var/www/wp-config.php successfully
Success: Host entry successfully added.
Checking and verifying site-up status. This may take some time.
Installing WordPress site.
Success: http://geekflarelab.com has been created successfully!
Site entry created.
Creating cron entry
Success: Cron created successfully
+--------------------+----------------------------------------+
| Site | http://geekflarelab.com |
+--------------------+----------------------------------------+
| Site Root | /opt/easyengine/sites/geekflarelab.com |
+--------------------+----------------------------------------+
| Site Title | geekflarelab.com |
+--------------------+----------------------------------------+
| WordPress Username | inspiring-galois |
+--------------------+----------------------------------------+
| WordPress Password | xxxxxxxxxxxx |
+--------------------+----------------------------------------+
| DB Host | global-db |
+--------------------+----------------------------------------+
| DB Name | geekflarelab_com |
+--------------------+----------------------------------------+
| DB User | geekflarelab.com-DRf3pP |
+--------------------+----------------------------------------+
| DB Password | xxxxxxxxxxxx |
+--------------------+----------------------------------------+
| E-Mail | [email protected] |
+--------------------+----------------------------------------+
| SSL | Not Enabled |
+--------------------+----------------------------------------+
| Cache | Enabled |
+--------------------+----------------------------------------+
root@:~#
Чудово, мій WP сайт створено. EasyEngine автоматично налаштував Nginx, базу даних, оптимізував PHP, тому вам не потрібно вносити додаткові зміни.
Час перевірити результат.
Чи буде сайт доступний, якщо я перейду на geekflarelab.com?
Ні!
Необхідно оновити DNS запис домену, вказавши IP адресу вашого сервера DigitalOcean.
- Увійдіть до панелі керування вашого реєстратора доменних імен та оновіть A-запис.
Тепер я можу отримати доступ до geekflarelab.com
Як бачите, лише за декілька хвилин я розгорнув WP на хмарному сервері DO.
Хотів би також зазначити наступні моменти:
Зміна SSH порту
Стандартний порт SSH – 22, і це відомо багатьом. Це робить сервер вразливим для атак брутфорсом. Якщо пароль слабкий, то ваш сервер може бути скомпрометований. Зміна стандартного порту на інший буде швидким рішенням для підвищення безпеки.
У статті нижче я пояснив, як змінити порт SSH:
https://techukraine.net.com/cloud-vm-security-guide/#1-Changing-SSH-Default-Port
Впровадження SSL/TLS сертифіката
Наявність сайту з HTTPS є обов’язковою, і ви можете отримати його безкоштовно. Якщо ви не хочете заглиблюватися в технічні деталі, я рекомендую використовувати Cloudflare.
Cloudflare надає БЕЗКОШТОВНИЙ SSL, а також інші переваги, що стосуються продуктивності та безпеки.
Захист WordPress
Не залишайте ваш WordPress незахищеним.
Існує багато доступних плагінів для безпеки, але якщо дозволяє бюджет, оберіть преміум рішення. Ви можете розглянути Cloudflare Pro або SUCURI. Обидва варіанти пропонують комплексні функції продуктивності та безпеки, включаючи БЕЗКОШТОВНИЙ SSL сертифікат, захист від DDoS атак, зниження впливу 10 найпоширеніших вразливостей OWASP та інше.
Наскільки швидко працює сайт WordPress на DigitalOcean?
Звичайно, важко дати узагальнену оцінку, так як кожен сайт унікальний. Але для прикладу, я провів декілька навантажувальних тестів і ось результати:
Я встановив тему Authority Pro від StudioPress і додав кілька фіктивних публікацій для тестування за допомогою Blazemeter.
Непогано, правда?
Як бачите, тест проводився з 50 користувачами протягом 5 хвилин з Північної Каліфорнії і результати вражаючі.
- Середній час відгуку: 351.19 мс
- Помилки: 0%
Все, що займає менше 1 секунди, вважається чудовим показником.
Висновок
Якщо ви використовуєте спільний хостинг та плануєте переїзд в хмару, і готові витратити час на налаштування, DigitalOcean буде гарним вибором. Однак, якщо у вас немає часу та навичок для самостійного адміністрування, я б рекомендував звернути увагу на Kinsta.
Kinsta – це керована хостингова платформа преміум-класу, яка використовує хмарну інфраструктуру Google для забезпечення максимальної продуктивності та безпеки.