{"id":31307,"date":"2021-01-27T09:07:50","date_gmt":"2021-01-27T08:07:50","guid":{"rendered":"https:\/\/fotc.com\/?p=31307"},"modified":"2021-09-29T13:34:47","modified_gmt":"2021-09-29T11:34:47","slug":"wordpress-migracja-na-gcp","status":"publish","type":"post","link":"https:\/\/dev.fotc.com\/pl\/blog\/wordpress-migracja-na-gcp\/","title":{"rendered":"Przenoszenie WordPressa na serwer w chmurze. Przyk\u0142ad manualnej migracji do Google Cloud Platform"},"content":{"rendered":"\n
Mo\u017ce si\u0119 zdarzy\u0107, \u017ce WordPress b\u0119dzie wymaga\u0142 przeniesienia na inny serwer, inny hosting lub do chmury publicznej. Argumentami za przeprowadzeniem migracji mo\u017ce by\u0107 niska dost\u0119pno\u015b\u0107, zbyt wolne wczytywanie strony, niewystarczaj\u0105ce zabezpieczenia czy nietransparentny spos\u00f3b rozlicze\u0144.<\/span><\/p>\n\n\n\n WordPressa mo\u017cna przenie\u015b\u0107 na inn\u0105 domen\u0119 czy serwer na dwa sposoby: za pomoc\u0105 pluginu (wtyczki) lub manualnie. Ten tutorial opisuje drug\u0105 opcj\u0119, czyli manualne przenoszenie WordPressa do chmury publicznej.<\/span><\/p>\n\n\n\n Google Cloud Platform<\/a> (w skr\u00f3cie: GCP) to zestaw blisko 200 us\u0142ug chmury obliczeniowej. Na portfolio us\u0142ug GCP sk\u0142adaj\u0105 si\u0119 mi\u0119dzy innymi:<\/span><\/p>\n\n\n\n Wi\u0119cej o Google Cloud Platform przeczytasz w artykule <\/span>„Co to jest Google Cloud Platform i w jaki spos\u00f3b wspiera biznes?\u201d<\/span><\/a>.<\/span><\/p>\n\n\n\n Dlaczego warto przenie\u015b\u0107 domen\u0119 WordPressa na serwery w chmurze GCP?<\/b> Powod\u00f3w jest wiele, a w\u015br\u00f3d najcz\u0119\u015bciej przytaczanych znajduj\u0105 si\u0119:<\/span><\/p>\n\n\n\n Planujesz migracj\u0119 do Google Cloud Platform? <\/span>Skontaktuj si\u0119 z FOTC, by uzyska\u0107 profesjonalne wsparcie i voucher 500 $<\/span><\/a>.<\/span><\/p>\n\n\n\n Opisany tutorial obejmuje manualn\u0105 migracj\u0119 WordPressa. Serwis mo\u017cna przenie\u015b\u0107 te\u017c za pomoc\u0105 wtyczek takich jak Duplicator, UpdraftPlus czy All-in-One WP Migration. Jednak zdarza si\u0119, \u017ce pluginy nie radz\u0105 sobie w pe\u0142ni przy migrowaniu rozbudowanych serwis\u00f3w lub pomijaj\u0105 niekt\u00f3re pliki (np. cache, ale nieprawid\u0142owo zaktualizowane wtyczki mog\u0105 przypadkiem pomin\u0105\u0107 istotne dokumenty.)<\/span><\/p>\n\n\n\n R\u0119czne przenoszenie WordPressa na inny serwer daje administratorowi pe\u0142n\u0105 kontrol\u0119 oraz pewno\u015b\u0107, \u017ce wszystkie pliki zosta\u0142y skopiowane, a migracja przeprowadzona bez b\u0142\u0119du.<\/span><\/p>\n\n\n\n Nale\u017cy zaznaczy\u0107 na pocz\u0105tku, \u017ce opisany spos\u00f3b nie jest uniwersalny, a jest opisem przyk\u0142adowej migracji<\/b>. Ka\u017cdy serwis mo\u017ce mie\u0107 nieco inne wymagania. Administrator powinien na ich podstawie stworzy\u0107 odpowiedni\u0105 strategi\u0119 migracji oraz dobra\u0107 us\u0142ugi chmury obliczeniowej.<\/span><\/p>\n\n\n\n W opisanym sposobie u\u017cywamy:<\/span><\/p>\n\n\n\n Je\u015bli nie korzysta\u0142e\u015b jeszcze z GCP, tutaj przeczytasz <\/span>jak utworzy\u0107 i skonfigurowa\u0107 konto w Google Cloud Platform<\/span><\/a>.<\/span><\/p>\n\n\n\n Pierwszym krokiem jest wykonanie kopii zapasowej obecnego WordPressa i zapisanie plik\u00f3w w formacie ZIP.<\/span><\/p>\n\n\n\n Kopi\u0119 zapasow\u0105 przenoszonej domeny mo\u017cna zrobi\u0107 przez m.in. FileZilla lub z poziomu mened\u017cera plik\u00f3w udost\u0119pnianego przez hostingodawc\u0119.<\/span><\/p>\n\n\n\n W celu zrobienia backupu nale\u017cy przej\u015b\u0107 do \u015bcie\u017cki, w kt\u00f3rej znajduj\u0105 si\u0119 pliki WordPress. Struktura mo\u017ce by\u0107 podobna jak na screenie ni\u017cej.<\/span><\/p>\n\n\n\n Kopi\u0119 zapasow\u0105 bazy danych mo\u017cna wykona\u0107 za pomoc\u0105 terminala, odpowiedniego pluginu WordPress lub phpMyAdmin. W tym przyk\u0142adzie korzystamy z phpMyAdmin.<\/span><\/p>\n\n\n\n Z drzewa po lewej stronie nale\u017cy <\/span>wybra\u0107 baz\u0119<\/b> (u nas jest to kamilputz_wp2). Nast\u0119pnie klikn\u0105\u0107 <\/span>Eksport <\/b>w menu g\u00f3rnym i <\/span>zapisa\u0107 plik w rozszerzeniu .sql<\/b>.<\/span><\/p>\n\n\n\n W Google Cloud Platform nale\u017cy:<\/span><\/p>\n\n\n\n W wierszu polece\u0144 GCP nale\u017cy wpisa\u0107 komend\u0119:<\/span> * Typ maszyny musi zosta\u0107 dobrany wzgl\u0119dem projektu. W tym przypadku u\u017cyta zosta\u0142a maszyna db-f1-micro.<\/span><\/p>\n\n\n\n \u017beby stworzy\u0107 baz\u0119 danych, nale\u017cy wpisa\u0107 komend\u0119:<\/span><\/p>\n\n\n Pami\u0119taj\u0105c o best practices, zmieniany has\u0142o dla roota instancji:<\/span><\/p>\n\n\n ** W to miejsce wpisujemy unikalne has\u0142o.<\/span><\/p>\n\n\n\n W pierwszej kolejno\u015bci nale\u017cy pobra\u0107 <\/span>google\/cloud-tools<\/b> za pomoc\u0105 komendy:<\/span><\/p>\n\n\n Je\u015bli podczas pobierania zwr\u00f3cony zostanie b\u0142\u0105d, nale\u017cy pobra\u0107 <\/span>pliki .phar<\/b> oraz <\/span>.zip <\/b>poprzez wpisanie:<\/span><\/p>\n\n\n Uruchamiany <\/span>wp-gae<\/b>:<\/span><\/p>\n\n\n Teraz, dzi\u0119ki u\u017cyciu <\/span>wp-gae<\/b>,<\/span> jeste\u015bmy w stanie m.in. skonfigurowa\u0107 po\u0142\u0105czenie z baz\u0105 Cloud SQL.<\/span><\/p>\n\n\n\n Kolejnym krokiem jest pobranie i konfiguracja WordPressa dla GCP poprzez wpisanie:<\/span><\/p>\n\n\n A nast\u0119pnie okre\u015blenie regionu, w kt\u00f3rym znajduje si\u0119 baza danych:<\/span><\/p>\n\n\n Nale\u017cy przej\u015b\u0107 do g\u0142\u00f3wnego folderu z projektem WordPress, na przyk\u0142ad:<\/span><\/p>\n\n\n Nast\u0119pnie wpisa\u0107 nast\u0119puj\u0105c\u0105 komend\u0119, aby wdro\u017cy\u0107 projekt na App Engine:<\/span><\/p>\n\n\n \u017beby skonfigurowa\u0107 Storage, nale\u017cy wpisa\u0107:<\/span><\/p>\n\n\n A nast\u0119pnie przej\u015b\u0107 na:<\/span><\/p>\n\n\n Po czym uruchomi\u0107 Google Cloud Storage plugin. W preferencjach ustawiamy nazw\u0119 bucketu na wcze\u015bniej okre\u015blone ID.<\/span><\/p>\n\n\n\n W konsoli Google Cloud Platform wchodzimy w us\u0142ug\u0119 Cloud SQL.<\/span><\/p>\n\n\n\n Klikamy <\/span>Import<\/b> u g\u00f3ry ekranu.<\/span><\/p>\n\n\n\n Wybieramy wcze\u015bniej zgrany <\/span>plik .sql <\/b>z baz\u0105 danych WordPressa. Wskazujemy format pliku jako <\/span>SQL<\/b>.<\/span><\/p>\n\n\n\n Skopiowane z poprzedniego serwera themes i pluginy nale\u017cy umie\u015bci\u0107 w folderze z pozosta\u0142ymi plikami strony. <\/span><\/p>\n\n\n\n W naszym przypadku jest to <\/span>my-wordpress-project-art<\/b>. Deploy wykonujemy poprzez wpisanie:<\/span><\/p>\n\n\n
<\/a><\/figure>\n\n\n\nWordPress na Google Cloud Platform \u2013 dlaczego warto?<\/span><\/h2>\n\n\n\n
Manualna migracja WordPressa a migracja z u\u017cyciem pluginu<\/span><\/h2>\n\n\n\n
Przenoszenie WordPressa na GCP (Cloud SQL, App Engine, Cloud Storage) \u2013 przyk\u0142adowa migracja<\/span><\/h2>\n\n\n\n
Krok 1: przygotowanie WordPressa do migracji<\/span><\/h3>\n\n\n\n
Backup obecnego serwera (plik\u00f3w strony WordPress)<\/span><\/h4>\n\n\n\n
<\/figure>\n\n\n\nBackup bazy danych<\/span><\/h4>\n\n\n\n
<\/figure>\n\n\n\nKrok 2: wdro\u017cenie WordPressa na Google Cloud Platform<\/span><\/h3>\n\n\n\n
Cloud SQL: stworzenie i przyk\u0142adowa konfiguracja Cloud SQL dla MySQL<\/span><\/h4>\n\n\n\n
\n<\/span><\/p>\n\n\n\n$ gcloud sql instances create wordpress \\\n--activation-policy=ALWAYS \\\n--tier=db-f1-micro* \\\n--region=us-central1\n<\/pre>\n\n\n\n
<\/figure>\n\n\n\ngcloud sql databases create wordpress --instance wordpress<\/pre>\n\n\n\n
\ngcloud sql users set-password root \\\n--host=% \\\n--instance wordpress \\\n--password=YOUR_INSTANCE_ROOT_PASSWORD**\n<\/pre>\n\n\n\n
App Engine: uruchomienie i konfiguracja platformy developerskiej<\/span><\/h4>\n\n\n\n
Pobranie google\/cloud-tools i uruchomienie wp-gae<\/span><\/h5>\n\n\n\n
composer require google\/cloud-tools<\/pre>\n\n\n\n
sudo apt-get install php7.2-zip php7.2-curl<\/pre>\n\n\n\n
php vendor\/bin\/wp-gae<\/pre>\n\n\n\n
Stworzenie projektu WordPress<\/span><\/h5>\n\n\n\n
php vendor\/bin\/wp-gae create<\/pre>\n\n\n\n
<\/figure>\n\n\n\ngcloud sql instances describe wordpress | grep region<\/pre>\n\n\n\n
Wdro\u017cenie do Google Cloud<\/span><\/h5>\n\n\n\n
cd my-wordpress-project<\/pre>\n\n\n\n
gcloud app deploy app.yaml cron.yaml<\/pre>\n\n\n\n
<\/figure>\n\n\n\nCloud Storage: konfiguracja us\u0142ugi i uruchomienie pluginu Google Cloud Storage<\/span><\/h4>\n\n\n\n
gsutil defacl ch -u AllUsers:R gs:\/\/YOUR_PROJECT_ID.appspot.com<\/pre>\n\n\n\n
https:\/\/YOUR_PROJECT_ID.appspot.com\/wp-admin<\/pre>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\nKrok 3: wdro\u017cenie backupu w Cloud SQL<\/span><\/h3>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\nKrok 4: wdro\u017cenie motyw\u00f3w i dodatk\u00f3w WordPress<\/span><\/h3>\n\n\n\n
gcloud app deploy app.yaml cron.yaml<\/pre>\n\n\n\n
Krok 5: podpi\u0119cie domeny <\/span><\/h3>\n\n\n\n