Wdrażanie witryn WordPress (WP) na serwerach DigitalOcean (DO) w czasie poniżej 10 minut to realna możliwość.
Użytkownicy rozpoczynający swoją przygodę z blogowaniem lub posiadacze stron internetowych często zastanawiają się, jak przyspieszyć działanie ich witryn na współdzielonym hostingu, zważywszy na jego ograniczenia. Po pewnym czasie frustracji, naturalnym krokiem staje się migracja ze współdzielonej infrastruktury na hosting oparty o chmurę.
DigitalOcean to jedna z pierwszych platform chmurowych, która przychodzi na myśl w takiej sytuacji.
Platforma DO jest idealna na start; oferuje przystępniejsze ceny niż AWS i GCP, a także skalowalność, szybkość działania i wszystkie funkcje, których można oczekiwać.
Jednakże, konfiguracja witryny może być wyzwaniem, jeśli nie posiada się doświadczenia w administracji systemami. DO dostarcza system operacyjny i niezbędne narzędzia, ale ich konfiguracja leży po stronie użytkownika. Alternatywnie, można skorzystać z Cloudways, aby za pomocą kilku kliknięć skonfigurować serwer DigitalOcean, omijając techniczne aspekty samodzielnej konfiguracji. Oferują oni również serwery DigitalOcean Premium.
Odpowiadając na liczne zapytania mailowe dotyczące konfiguracji WP na DO, postanowiłem przygotować kompleksową instrukcję dostępną dla każdego.
Przed przystąpieniem do części technicznej, należy pamiętać, że DO nie jest rejestratorem domen, co oznacza, że nie można u nich nabyć domeny. Zakładam, że domena jest już w Twoim posiadaniu. Jeśli nie, polecam zakupić ją np. na Namecheap.
Zaczynajmy…
Istnieje wiele metod konfiguracji WordPressa, ale jedną z najprostszych, jaką znalazłem, jest wykorzystanie EasyEngine. W tym poradniku użyjemy EasyEngine do zainstalowania całego potrzebnego oprogramowania i utworzenia witryny WP.
Uzyskanie serwera DigitalOcean
DO oferuje centra danych w wielu lokalizacjach na całym świecie. Wybierz serwer znajdujący się najbliżej Twojej grupy docelowej.
- Zaloguj się (lub zarejestruj, jeśli nie posiadasz konta) na DigitalOcean.
- Utwórz nowy „droplet” (serwer) i wybierz Ubuntu 18.x jako system operacyjny.
- Wybierz plan „droplet” dostosowany do Twoich potrzeb. Dla początkujących, 2 GB lub 3 GB pamięci RAM powinny być wystarczające.
- Dodaj opcję monitorowania.
- Nadaj nazwę swojemu serwerowi i kliknij „Utwórz”.
Proces ten trwa około minuty, po której powinien pojawić się nowo utworzony serwer.
DO wyśle dane logowania do serwera na zarejestrowany adres e-mail.
- Zaloguj się do serwera, używając otrzymanych danych i adresu IP za pomocą klienta SSH.
Przy pierwszym logowaniu zostaniesz poproszony o zmianę hasła. Jest to standardowa procedura i zaleca się ustawienie złożonego hasła.
Instalacja EasyEngine
Gdy serwer jest już gotowy, czas na instalację EasyEngine (EE). EE to zaawansowane narzędzie do automatyzacji, umożliwiające tworzenie różnego typu stron internetowych za pomocą prostych poleceń. Zaletą EE jest brak konieczności ręcznej konfiguracji poszczególnych komponentów, takich jak Nginx, MariaDB, Redis, PHP itp. Wszystko odbywa się automatycznie w tle i jest całkowicie DARMOWE!
Najnowsza wersja EE wykorzystuje kontenery Docker, ale nie musisz o tym wiedzieć. EE jest rozwiązaniem produkcyjnym, stosowanym na tysiącach stron o dużym natężeniu ruchu.
Pokażę, jak proste jest używanie EasyEngine. Zakładam, że nadal jesteś zalogowany na serwerze DigitalOcean.
- Zacznijmy od aktualizacji systemu, wykonując poniższe polecenie:
apt-get update
- Następnie zainstaluj EE za pomocą następującego polecenia:
wget -qO ee rt.cx/ee4 && sudo bash ee
Instalacja niezbędnego oprogramowania w tle zajmie kilka minut. Po zakończeniu procesu wyświetli się poniższy komunikat:
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. [email protected]:~#
Oznacza to, że EasyEngine został zainstalowany i jest gotowy do użycia.
Tworzenie witryny WordPress
EE oferuje opcję tworzenia witryn WordPress z włączoną pamięcią podręczną Redis, która znacząco poprawia wydajność. Sam używam Redisa i jestem zadowolony, dlatego polecam go wypróbować.
Utwórzmy witrynę WP na domenie z włączoną pamięcią podręczną Redis.
ee site create geekflarelab.com --type=wp --cache
Powyższe polecenie nakazuje EE utworzenie witryny o nazwie domenowej geekflarelab.com, typu WordPress z włączonym buforowaniem.
Proces ten zajmie kilka sekund. Po jego zakończeniu powinien pojawić się komunikat o powodzeniu, podobny do poniższego:
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 | +--------------------+----------------------------------------+ [email protected]:~#
Świetnie, moja strona WP została utworzona. EasyEngine zajmuje się konfiguracją Nginx, bazy danych i optymalizacją PHP, więc nie musisz wprowadzać żadnych dodatkowych zmian.
Czas to przetestować.
Czy strona zadziała, gdy wpiszę geekflarelab.com?
Nie!
Muszę zaktualizować rekord A domeny, aby wskazywał na adres IP serwera DigitalOcean.
- Zaloguj się do panelu rejestratora domeny i zaktualizuj rekord A.
Teraz mam dostęp do strony geekflarelab.com.
Jak widać, w zaledwie kilka minut, WP działa na serwerze DO w chmurze.
Oto dodatkowe kroki, które warto wykonać:
Zmiana portu SSH
Domyślnie port SSH to 22 i jest powszechnie znany. To ułatwia atakującym przeprowadzenie ataków siłowych. Jeśli hasło do serwera jest słabe, serwer może zostać zhakowany. Zmiana domyślnego portu na inny to szybki sposób na podniesienie bezpieczeństwa.
W poniższym artykule wyjaśniłem, jak zmienić port SSH:
https://wdzzwdz.com/cloud-vm-security-guide/#1-Zmieniam-domyślny-port SSH
Wdrożenie certyfikatu SSL/TLS
Twoja witryna powinna działać w trybie HTTPS. Na szczęście certyfikat SSL można uzyskać bezpłatnie. Jeśli nie chcesz zagłębiać się w techniczne aspekty konfiguracji, polecam wypróbowanie Cloudflare.
Cloudflare oferuje DARMOWY certyfikat SSL, a także inne korzyści związane z wydajnością i bezpieczeństwem.
Zabezpieczenie WordPressa
Nie pozostawiaj WordPressa bez odpowiednich zabezpieczeń.
Dostępnych jest wiele wtyczek, ale jeśli masz budżet, rozważ zakup rozwiązania premium. Możesz wybrać Cloudflare Plan PRO lub SUCURI. Oba te rozwiązania oferują kompleksowe funkcje związane z wydajnością i bezpieczeństwem, w tym DARMOWY certyfikat SSL, ochronę przed atakami DDoS, łagodzenie 10 najpopularniejszych luk OWASP itp.
Jak szybka jest strona WP na DigitalOcean?
Trudno o jednoznaczną odpowiedź, ponieważ każda strona jest inna. Jednak, aby dać ci ogólne wyobrażenie, przeprowadziłem testy obciążeniowe, a oto rezultaty.
Zainstalowałem motyw Authority Pro od StudioPress i dodałem kilka fikcyjnych postów do testów za pomocą Blazemeter.
Całkiem imponujące, prawda?
Jak widać, test został przeprowadzony na 50 użytkownikach przez 5 minut z Północnej Kalifornii, a wyniki są znakomite:
- Średni czas odpowiedzi: 351,19 ms
- Błąd: 0%
Wynik poniżej 1 sekundy jest imponujący.
Podsumowanie
Jeśli korzystasz ze współdzielonego hostingu i planujesz migrację do chmury oraz masz czas na konfigurację, DigitalOcean jest dobrym wyborem. Jeśli natomiast brakuje Ci czasu i umiejętności, warto rozważyć Kinsta.
Kinsta to wysokiej klasy platforma hostingowa WP, która bazuje na Google Cloud, oferując najwyższą wydajność i bezpieczeństwo.