Spis treści
- WordPress na Google Cloud Platform – dlaczego warto?
- Manualna migracja WordPressa a migracja z użyciem pluginu
- Przenoszenie WordPressa na GCP (Cloud SQL, App Engine, Cloud Storage) – przykładowa migracja
- Krok 1: przygotowanie WordPressa do migracji
- Krok 2: wdrożenie WordPressa na Google Cloud Platform
- Krok 3: wdrożenie backupu w Cloud SQL
- Krok 4: wdrożenie motywów i dodatków WordPress
- Krok 5: podpięcie domeny
Może się zdarzyć, że WordPress będzie wymagał przeniesienia na inny serwer, inny hosting lub do chmury publicznej. Argumentami za przeprowadzeniem migracji może być niska dostępność, zbyt wolne wczytywanie strony, niewystarczające zabezpieczenia czy nietransparentny sposób rozliczeń.
WordPressa można przenieść na inną domenę czy serwer na dwa sposoby: za pomocą pluginu (wtyczki) lub manualnie. Ten tutorial opisuje drugą opcję, czyli manualne przenoszenie WordPressa do chmury publicznej.
WordPress na Google Cloud Platform – dlaczego warto?
Google Cloud Platform (w skrócie: GCP) to zestaw blisko 200 usług chmury obliczeniowej. Na portfolio usług GCP składają się między innymi:
- maszyny wirtualne o ogromnej mocy obliczeniowej,
- usługi umożliwiające szybkie wdrażanie i rozbudowę aplikacji, w tym aplikacji w kontenerach,
- narzędzia zarządzania klastrami Kubernetes,
- bazy danych w chmurze,
- przestrzeń na przechowywanie plików w magazynie chmurowym,
- usługi prowadzenia analityki BigData,
- gotowe modele uczenia maszynowego i sztucznej inteligencji,
- platforma rozwoju technologii Internet of Things.
Więcej o Google Cloud przeczytasz w artykule wyjaśniającym co to jest Google Cloud Platform; a sam koncept chmury przybliży Ci tekst opisujący, czym jest chmura obliczeniowa.
Dlaczego warto przenieść domenę WordPressa na serwery w chmurze GCP? Powodów jest wiele, a wśród najczęściej przytaczanych znajdują się:
- możliwość doboru usług – niezależnie od tego, czy prowadzisz niewielki hobbystyczny serwis, czy rozwijasz popularny sklep internetowy, masz dostęp do tych samych usług, co globalne korporacje; możesz dobierać usługi GCP oraz ich poziom do potrzeb swojej aplikacji,
- skalowalność – usługi GCP są skalowalne i w górę, i w dół; to oznacza, że Twój serwis bez problemu przyjmie nawet kilkudziesięciokrotnie wzmożony ruch, a po wyjściu gości z portalu usługi zeskalują się w dół,
- elastyczność kosztów – skalowalność usług przekłada się też na koszty: w sytuacji niskiego zużycia za usługi zapłacisz niewiele, przy wzmożonym ruchu proporcjonalnie więcej (zobacz też: Jak płacić mniej za GCP? 10 obszarów, na które powinieneś zwrócić uwagę),
- wydajność i wysoka dostępność – Google Cloud tworzy własną sieć połączeń światłowodowych między centrami danych, co procentuje w stabilność oraz prędkość przesyłu,
- kontrola budżetu – zużycie budżetu jest co do grosza przedstawione w konsoli GCP za pomocą raportów, tabel czy wykresów; administrator ma też możliwość ustawienia powiadomień o zużyciu (zobacz case study Wizerunku w Sieci – firmy, która zrezygnowała z lokalnego hostingu na rzecz GCP, m.in. z powodu niejasnych rozliczeń),
- wsparcie lokalnego Partnera – użytkownicy chmury Google mogą liczyć na pomoc lokalnego Partnera Google Cloud oraz specjalne benefity, wyższe niż bezpośrednio u Google.
Planujesz migrację do Google Cloud Platform? Skontaktuj się z FOTC, by uzyskać profesjonalne wsparcie.
Manualna migracja WordPressa a migracja z użyciem pluginu
Opisany tutorial obejmuje manualną migrację WordPressa. Serwis można przenieść też za pomocą wtyczek takich jak Duplicator, UpdraftPlus czy All-in-One WP Migration. Jednak zdarza się, że pluginy nie radzą sobie w pełni przy migrowaniu rozbudowanych serwisów lub pomijają niektóre pliki (np. cache, ale nieprawidłowo zaktualizowane wtyczki mogą przypadkiem pominąć istotne dokumenty.)
Ręczne przenoszenie WordPressa na inny serwer daje administratorowi pełną kontrolę oraz pewność, że wszystkie pliki zostały skopiowane, a migracja do chmury została przeprowadzona bez błędu.
Przenoszenie WordPressa na GCP (Cloud SQL, App Engine, Cloud Storage) – przykładowa migracja
Należy zaznaczyć na początku, że opisany sposób nie jest uniwersalny, a jest opisem przykładowej migracji. Każdy serwis może mieć nieco inne wymagania. Administrator powinien na ich podstawie stworzyć odpowiednią strategię migracji oraz dobrać usługi chmury obliczeniowej.
W opisanym sposobie używamy:
- FileZilla do eksportu plików,
- phpMyAdmin do przeprowadzenia kopii zapasowej bazy danych,
- usługi Google Cloud Platform Cloud SQL dla bazy danych MySQL,
- usługi App Engine do hostowania serwisu,
- usługi magazynu chmurowego Cloud Storage do przechowywania plików strony oraz kopii zapasowych.
Jeśli nie korzystałeś jeszcze z GCP, tutaj przeczytasz jak utworzyć i skonfigurować konto w Google Cloud Platform.
Krok 1: przygotowanie WordPressa do migracji
Backup obecnego serwera (plików strony WordPress)
Pierwszym krokiem jest wykonanie kopii zapasowej obecnego WordPressa i zapisanie plików w formacie ZIP.
Kopię zapasową przenoszonej domeny można zrobić przez m.in. FileZilla lub z poziomu menedżera plików udostępnianego przez hostingodawcę.
W celu zrobienia backupu należy przejść do ścieżki, w której znajdują się pliki WordPress. Struktura może być podobna jak na screenie niżej.
Backup bazy danych
Kopię zapasową bazy danych można wykonać za pomocą terminala, odpowiedniego pluginu WordPress lub phpMyAdmin. W tym przykładzie korzystamy z phpMyAdmin.
Z drzewa po lewej stronie należy wybrać bazę (u nas jest to kamilputz_wp2). Następnie kliknąć Eksport w menu górnym i zapisać plik w rozszerzeniu .sql.
Krok 2: wdrożenie WordPressa na Google Cloud Platform
W Google Cloud Platform należy:
- stworzyć nowy projekt i włączyć Billing (instrukcja),
- zainstalować Cloud SDK,
- włączyć Cloud SQL API,
- zainstalować Composer.
Cloud SQL: stworzenie i przykładowa konfiguracja Cloud SQL dla MySQL
W wierszu poleceń GCP należy wpisać komendę:
$ gcloud sql instances create wordpress \ --activation-policy=ALWAYS \ --tier=db-f1-micro* \ --region=us-central1
* Typ maszyny musi zostać dobrany względem projektu. W tym przypadku użyta została maszyna db-f1-micro.
Żeby stworzyć bazę danych, należy wpisać komendę:
gcloud sql databases create wordpress --instance wordpress
Pamiętając o best practices, zmieniany hasło dla roota instancji:
gcloud sql users set-password root \ --host=% \ --instance wordpress \ --password=YOUR_INSTANCE_ROOT_PASSWORD**
** W to miejsce wpisujemy unikalne hasło.
App Engine: uruchomienie i konfiguracja platformy developerskiej
Pobranie google/cloud-tools i uruchomienie wp-gae
W pierwszej kolejności należy pobrać google/cloud-tools za pomocą komendy:
composer require google/cloud-tools
Jeśli podczas pobierania zwrócony zostanie błąd, należy pobrać pliki .phar oraz .zip poprzez wpisanie:
sudo apt-get install php7.2-zip php7.2-curl
Uruchamiany wp-gae:
php vendor/bin/wp-gae
Teraz, dzięki użyciu wp-gae, jesteśmy w stanie m.in. skonfigurować połączenie z bazą Cloud SQL.
Stworzenie projektu WordPress
Kolejnym krokiem jest pobranie i konfiguracja WordPressa dla GCP poprzez wpisanie:
php vendor/bin/wp-gae create
A następnie określenie regionu, w którym znajduje się baza danych:
gcloud sql instances describe wordpress | grep region
Wdrożenie do Google Cloud
Należy przejść do głównego folderu z projektem WordPress, na przykład:
cd my-wordpress-project
Następnie wpisać następującą komendę, aby wdrożyć projekt na App Engine:
gcloud app deploy app.yaml cron.yaml
Cloud Storage: konfiguracja usługi i uruchomienie pluginu Google Cloud Storage
Żeby skonfigurować Storage, należy wpisać:
gsutil defacl ch -u AllUsers:R gs://YOUR_PROJECT_ID.appspot.com
A następnie przejść na:
https://YOUR_PROJECT_ID.appspot.com/wp-admin
Po czym uruchomić Google Cloud Storage plugin. W preferencjach ustawiamy nazwę bucketu na wcześniej określone ID.
Krok 3: wdrożenie backupu w Cloud SQL
W konsoli Google Cloud Platform wchodzimy w usługę Cloud SQL.
Klikamy Import u góry ekranu.
Wybieramy wcześniej zgrany plik .sql z bazą danych WordPressa. Wskazujemy format pliku jako SQL.
Krok 4: wdrożenie motywów i dodatków WordPress
Skopiowane z poprzedniego serwera themes i pluginy należy umieścić w folderze z pozostałymi plikami strony.
W naszym przypadku jest to my-wordpress-project-art. Deploy wykonujemy poprzez wpisanie:
gcloud app deploy app.yaml cron.yaml
Krok 5: podpięcie domeny
W celu podpięcia domeny należy w konsoli GCP przejść do usługi App Engine i z menu usługi wybrać Settings. Przejść do zakładki Custom domains, wybrać Add a custom domain i postępować zgodnie z wyświetlanymi krokami.
Zobacz też: