Wykonanie cyklicznych kopii zapasowych strony internetowej należy uznać za standardową procedurę, jednak jej znaczenie jest ogromne. Dlatego też powinna być obowiązkowa dla każdego użytkownika – niestety, wielu z nas o tym nie pamięta.
- Jak przywrócić kopię zapasową – backup WordPressa?
- Przenoszenie WordPressa – czyli omówienie wszystkich wariantów przenosin
W przypadku sporej awarii, uzyskanie kopii może więc kosztować nas dużo czasu i nerwów. Dlatego też warto dysponować zabezpieczeniem w postaci własnej kopii, tak aby od razu mieć możliwość cofnięcia zmian czy przeniesienia strony w inne miejsce.
Pamiętajmy też o tym, że w przypadku większości mniej rozbudowanych WordPressów, do najważniejszych elementów należą folder wp-content oraz baza danych – nie ma więc potrzeby wykonywania kopii tych plików systemów, które można ściągnąć ze strony. Oczywiście jeżeli nie dokonywaliśmy w nich zmian.
Kiedy należy wykonywać kopie zapasowe w przypadku strony na WordPress?
Najlepszą odpowiedzią jest: cyklicznie – celem jest uzyskanie danych z 2-3 miesięcy. W zależności od zmian na stronie oraz jej ruchu, zalecam cykl: 1 raz na tydzień – w przypadku 3 miesięcy da nam to 12 plików.
Jest to ważne, ponieważ często o pewnych rzeczach dowiadujemy się po czasie (np. włamaniu na stronę – co z tego, że mamy jedną kopię sprzed tygodnia, jeśli włamanie nastąpiło 3 tygodnie wcześniej? W przypadku takich problemów, musimy sami zlokalizować zmiany hackerskie i je usunąć).
Jeśli dysponujemy szerokim zakresem danych, możemy przywrócić wybraną wersję plików, ewentualnie porównać pliki strony poprzez program, np. Meld.
Dlaczego ważne jest wykonywanie kopii danych – backupów w WordPress?
Po raz kolejny należy wyraźnie podkreślić, że backup jest bardzo ważny. Wynika to z kilku kwestii:
- to jest Wasz własny backup, do którego to Wy macie dostęp, nie jesteście uzależnieni od hostingu, który może wykonywać kopie raz na 3 dni lub raz na miesiąc,
- możecie go przywrócić w każdej chwili,
- możecie wykorzystać kopię w taki sposób, by stworzyć dowolny serwer zapasowy lub testowy do wprowadzania różnych zmian na stronie,
- w chwili włamania na stronę, możecie łatwo przywrócić dane, poprzednią wersje lub porównać dwie wersje strony (dzięki temu dowiecie się, gdzie włamywacz dokonał zmian),
Podsumowując: dzięki kopii zapasowej to Wy macie kontrolę, nie jesteście od nikogo zależni.
Dodatkowo, backup ręczny należy wykonywać, gdy:
- działamy na skórce WordPressa, wdrażamy zmiany programistyczne,
- instalujemy nowe wtyczki, ingerujemy w pliki na serwerze,
- dajemy dostęp do strony firmom pozycjonującym, webmasterom dokonującym zmian na stronę,
- dokonujemy zmian na serwerze dedykowanym, vps,
- zamierzamy dokonać aktualizacji (np. gdy aktualizujemy bardzo starą wersje WordPressa do nowej)
- przenosimy stronę na inny hosting.
Wyróżniam 4 sposoby wykonania kopii strony na WordPressie.
Kopia za pomocą panelu hostingowego / helpdesku hostingu
Kilku polskich hostingdawców umożliwia wykonanie i ściągniecie kopii zapasowej na przycisk – wystarczy zalogować się do panelu hostingowego i kliknąć odpowiednią opcję. Niestety, w wielu przypadkach istnieje tylko możliwość pobrania kopii bazy danych. Pliki muszą zostać pobrane przez nas samodzielnie, bezpośrednio poprzez FTP.
Możemy też poprosić o taki zrzut helpdesk danego hostingu, w większości przypadków nie powinno być problemu z uzyskaniem kopii.
Kopia za pomocą wtyczki
Wystarczy zainstalować, a następnie skonfigurować wtyczkę do WordPressa – BackWPup. Dzięki niej możemy ustawić systematyczne kopie zapasowe.
Zalecam skonfigurowanie wtyczki raz na tydzień oraz ustawienie opcji wysyłki na DropBox – wtedy nasze pliki będą dostępne w darmowej, bezpiecznej chmurze (takie konto DropBox gwarantuje nam 2 GB wolnego miejsca do wykorzystania).
W przypadku wtyczki, należy uważać w sytuacji, gdy posiadamy hosting z limitem transferu oraz godziną wykonywania backupu – polecam noc z niedzieli na poniedziałek, gdy na stronie panuje najmniejszy ruch.
Wymagania wtyczki BackWPup:
- Minimalna wersja PHP – 5.3
- Minmalna wersja WordPressa – 3.9
- W przypadku pełnej funkcjonalności, potrzebujemy następujące moduły: gz, bz2, ziparchive, curl, ftp, mysqli, mail
Poradnik odnośnie skonfigurowania wtyczki
Pobieramy wtyczkę Backwpup:
Opis zdjęcia: Wybieramy zakładkę „wtyczki – dodaj nową” – jeżeli nie posiadamy takiej zakładki, to znaczy, że nasza strona posiada ograniczone uprawnienia. Należy wtedy uzyskać dane administracyjne, ewentualnie samemu to zmienić w bazie danych (więcej informacji tutaj).
Opis zdjęcia:
- Wpisujemy w pole wyszukiwarki “backwpup”.
- Po wyszukaniu wtyczki klikamy na przycisk “zainstaluj teraz”.
Opis zdjęcia: Gdy WordPress pobierze pliki wtyczki, instalujemy ją.
Opis zdjęcia: W zakładce po lewej stronie powinno pojawić się nowe pole “BackWPup”, w którym wybieramy „Add New Jobs”.
Opis zdjęcia:
- Wpisujemy nazwę naszego zadania backup.
- Wybieramy rzeczy, które ma eksportować wtyczka.
- Nazywamy plik, który ma generować wtyczka (plus data).
Opis zdjęcia:
- W dalszej kolejności wybieramy możliwość kompresji. W zależności od tego, jakie formaty archiwum posiada serwer, opcje będę zaznaczone (w moim przypadku brakuje modułu bzopen, dlatego nie można wybrać Tar BZIP2).
- Decydujemy, w które miejsce backup ma zostać wysłany.
Mamy do wyboru: folder na tym samym serwerze, wysyłkę mailem, wysyłkę na inny serwer FTP, wysyłkę do Dropbox i inne.
Zalecam „wysyłkę na Dropbox”, ponieważ jest to chmura. Dzięki temu, w razie skasowania danych na serwerze, dysponujemy “stabilnym” backupem.
Folder jest zalecany w przypadku ograniczonego transferu, ale pamiętajmy o tym, że gdy coś stanie się na serwerze, to taki backup jest bezużyteczny.
Email odpada w przypadku backupu plików, ale do wykonywania zrzutów bazy danych (gdzie mamy wszystkie treści WordPressa) jest to idealne rozwiązanie.
- Podajemy adres e-mail, na który zostaną wysłane informacje o backupie – takie logi wysyłają się jedynie wtedy, gdy wtyczka napotka błędy (np. pojemność Dropboxa zostanie przekroczona).
- Na dole mamy możliwość napisania, z jakiego maila ma zostać wysłana informacja – zostawiamy tak, jak jest.
Opis zdjęcia:
- Wybieramy opcję „with WordPress Cron”.
- Zostawiamy opcje basic – advanced umożliwia ustawienie bardziej precyzyjnych danych dotyczących crona (np. Backup co 2 dni, co 10 dni itp).
- Wybieramy częstotliwość realizowania automatycznych kopii zapasowych. Wykonywanie backupu obciąża serwer, dlatego najlepiej nadają się do tego godziny nocne, kiedy to jest mniejsze obciążenie na stronie i nie ma dużego zużycia serwera. Zapisujemy przyciskiem „Save Changes”.
Opis zdjęcia:
- Wybieramy tabele do backupu – jeżeli czytaliście sekcje o ręcznym backupie, to wiecie, dlaczego musimy wybrać te, a nie inne tabele. W przypadku wtyczki, sama wybiera ona tabelę WordPressa (na podstawie jej przedrostka).
- Zaznaczamy kompresje pliku, a w polu wyżej wpisujemy nazwę bazy danych.
Opis zdjęcia:
- Wybieramy foldery, które mają zostać uwzględnione przez wtyczkę w backupie. Jeżeli posiadamy dodatkowe foldery na serwerze ftp, jak np. stare zdjęcia i pliki czy też folder ze starą stroną, nie musimy wykonywać ich kopii zapasowych. Wiadomo też, że folder wp-admin, wp-includes nie są potrzebne, ponieważ można je zawsze pobrać wraz z instalacją WordPressa. No chyba że były dokonywane w nich jakieś zmiany – wtedy backup wydaje się konieczny.
Opis zdjęcia:
- Wpisujemy nazwę pliku, do którego wtyczka wygeneruje listę pluginów zainstalowanych w WordPressie. Decydujemy także o tym, czy taki plik ma zostać skompresowany.
Pragnę tutaj zwrócić uwagę na to, że w zależności od opcji zaznaczonych w zdjęciu z punktem 2, ta opcja może się nie wyświetlić (mowa o sytuacji, gdy odznaczyliśmy opcje Installed Plugin list).
Opis zdjęcia
- Sprawdzamy tabele, które są tylko WordPressowe, opcji „repair” nie zaznaczamy.
Opis zdjęcia:
- W przypadku opcji Dropbox, musimy stworzyć konto na dropbox.com (ufam że z założeniem konta sobie poradzicie).
- Następną opcją jest wygenerowanie kodów dostępu, zalogujcie się do Dropboxa i kliknijcie wybrany przycisk – chodzi o to, jakie uprawnienia ma mieć wtyczka.
- Decydujemy, jak ma się nazywać folder i co jaki czas wtyczka ma kasować stare pliki (w dalszej części artykułu dowiecie się, jaką wielkość ma twoja strona (dzięki temu można określić ilość backupów). Zachęcam trzymać co najmniej 8-12 plików (2 miesiące).
Opis zdjęcia:
Po kliknięciu w pkt 16, otrzymamy następujący monit – klikamy zezwól.
Opis zdjęcia:
- Numer punktu się powtarza – wygenerowany kod należy umieścić w polu 17 ze zdjęcia wyżej.
Opis zdjęcia:
- Po kliknięcie opcji, powinien wyświetlić się zielony tekst “authenticated!”. Oznacza to, że wtyczka BackWPup została skonfigurowana i jesteśmy gotowi do wykonania testowego backupu. Klikamy “Run Now”.
Backup zaczyna się generować, a na pasku widać kolejne działania wykonywane przez wtyczkę. Klikając “display log”, wyświetlą się nam konkretne informacje – między innymi dotyczące tego, ile zajmuje nasz spakowany plik z backupem.
Dzięki temu możemy określić liczbę maksymalnych plików backupowych na Dropbox (w moim przypadku 144 MB). Backupy przechowuję z 3 miesięcy wstecz.
Opis zdjęcia:
Po wykonanym działaniu, logujemy się na Dropboxa i widzimy nasz plik z backupem.
Dodatkowo wtyczka umożliwia podglądanie backupu w opcji “Manage Backup Archives”, gdzie jednym kliknięciem możemy pobrać backup z określonego dnia.
Pełna wersja czy darmowa wtyczki?
Pełna wersja pozwala nam wybrać większą liczbę stron do backupu: Google Drive, Amazon Glacier etc. oraz pomoc suportu. Pełna listę różnic między wersją darmową a płatną znajdziecie tutaj:
Kopia ręczna (zrzut FTP, bazy danych),
Jeżeli jesteście naprawdę początkujący, to zalecam wykonanie kopii poprzez wtyczkę – wykonuje te czynności automatycznie, w przypadku plików na serwerze można “łatwiej” popsuć stronę, chociażby przeciągając folder na listing FTP.
- Kopia ręczna, jak sama nazwa wskazuje, polega na wykonaniu następujących czynności:
- Zalogowanie się na serwer FTP poprzez FileZille, WinSCP.

Menadżer filezilla (konfiguracja)
- Klikając w menadżer stron, otworzymy nowe okienko z listingiem stron, dodajemy nowy adres FTP strony.
- Serwer – podajemy adres serwera, ewentualnie nazwę strony (bez http i www).
- Protokół – w zależności od pola znajdującego się w panelu hostingowym, ustawiamy SFTP lub FTP.
- Typ logowania: normalne.
- Login i hasło znajdują się w panelu hostingowym (zazwyczaj zakładka konta FTP / FTP).
- Wybranie folderu z WordPressem i pobranie (w FileZilli ważne jest, by ustawić opcje pokazaną w zdjęciu powyżej – “wymuś pokazywanie ukrytych plików”, inaczej plik konfiguracyjny serwera (.htaccess) nie będzie widoczny.
- Ważnym elementem jest sprawdzenie, czy stronę kopiujemy z prawidłowego serwera FTP – często możemy mieć dwa hostingi, więc lepiej się nie pomylić.
Jak sprawdzić czy jesteśmy na prawidłowym serwerze ftp?
- Należy wejść w wiersz poleceń, terminal i wywołać polecenie ping <nazwadomeny>. Wskaże nam to informacje o adresie IP – jeżeli identyczny jest w zakładce „host”, to jesteśmy na prawidłowym FTP.
- Komenda ping nie zawsze zwraca prawidłowe IP (np. gdy jesteśmy w Cloudflare – które zwraca IP chmury a nie naszego serwera). W takim wypadku należy wgrać dowolny plik tekstowy i sprawdzić, czy wyświetla się on po wpisaniu w wyszukiwarce adresu – nazwastronywordpress.pl/nazwapliku.txt.
- Wtyczka może przydać się do sprawdzenia wydajności hostingów – można porównać wtedy czas kompresji, wysyłki do Dropbox, a to pozwala sprawdzić, jaki procent obciążenia serwera przysługuje do naszej usługi hostingowej.
Kopia bazy danych poprzez phpmyadmin
- Zalogowanie się do phpmyadmin bazy danych (w przypadku home.pl -> www.nazwadomeny.pl/phpmyadmin i wyeksportowanie bazy danych).
Opis zdjęcia: Panel logowania PhpMyAdmin
Dane do bazy danych możemy pobrać z:
- wordpressa (plik wp-config.php),
Opis zdjęcia – elementy wp-config, interesują nas treści DB_USER oraz DB_PASSWORD.
- panelu hostingowego w zakładce bazy danych.
Jeżeli nie możecie się zalogować do phpmyadmin korzystając z loginu i hasła z wp-config.php, to:
- logujecie się na niewłaściwą bazę danych,
- zalogowaliście się na hosting backupowy, zastępczy (korzystając z innej bazy),
- zablokowana jest możliwość logowania z zewnątrz / danego IP/.
Opis zdjęcia:
- Po zalogowaniu się, wybieramy bazę z naszym WordPressem określoną nazwą DB_NAME z pliku wp-config.php. W przypadku paneli hostingowych, po zalogowaniu się na takie dane, powinniście mieć tylko dostęp do jednej bazy z WordPressem, co jest logiczne w przypadku zasad bezpieczeństwa.
- Przechodzimy do strony z Eksportem.
Opis zdjęcia:
- Na stronie z eksportem klikamy “Dostosuj”.
- Wybieramy tabelę z naszym WordPressem (jeżeli pole jest puste, zostawiamy wszystko zaznaczone, jeżeli w pliku wp-config posiadamy wypełniony db_collate (przedrostek), to zaznaczamy tabele tylko z tym przedrostkiem. Dzięki temu wyeksportujemy z bazy danych wyłącznie tabele dotyczące naszego WordPressa.
- Zaznaczamy opcję wyeksportowania do pliku, warto też ustawić ustawienie kompresji. Celem zapisu do pliku jest pobranie pliku .sql z wszystkimi tabelami (wiele hostingów nie ma domyślnie tej opcji, w wyniku czego phpMyAdmin zrzuca cały kod do okienka na stronie, a przy dużych bazach danych powoduje to zacięcie strony / przeglądarki).
- Poniżej na tej samej podstronie znajduje sie przycisk eksport, który wygeneruje nam plik.
Opis zdjęcia: przykład wygenerowanego pliku .sql z narzędzia phpMyAdmin
Kopia na serwerze dedykowanym (ssh, crontab)
Gdy posiadamy serwer dedykowany bądź VPS (virtual private server), należy stworzyć skrypt powłoki bash i poprzez umieszczenie go w cronie, ustawić jego cykliczne „odpalanie”.
Skrypt taki wykonuje następujące działania:
- Kompresuje konkretny folder z WordPressem – możemy również ustawić opcje z hasłem archiwum,
- Wykonuje kopie konkretnej bazy lub całej bazy,
- Kopia trafia w zależności od nas do:
- konkretnego folderu,
- wysyłana jest do dropboxa,
- wysyłana jest poprzez ssh na inny serwer.
Skrypt działa identycznie jak wtyczka. Oczywiście jego użycie zalecam wyłącznie w przypadku stron na innych cmsach, gdzie nie mamy dostępu do tak wygodnej wtyczki.
W przypadku skryptu, jest to już element bardziej zaawansowany, dlatego w tym miejscu tylko o tym informuję – więcej informacji znajdziecie w moim artykule dotyczącym skryptów bash.
Walidacja danych – to ma znaczenie!
Pamiętajcie również o sprawdzaniu, czy dana kopia zapasowa jest prawidłowa. Nie mówię tutaj o sprawdzaniu każdego cotygodniowego pliku zip. Gdy ustawiamy wtyczkę, należy upewnić się, czy dane są poprawne i poprzez ich wykorzystanie postawić stronę np. na serwerze lokalnym.
W moim przypadku, jeżeli chodzi o transfer między serwerami, zawsze porównuje sumę kontrolną plików. Wtyczkę, po pobraniu kopii, wykorzystuję do sprawdzenia – tworzę kopie lokalną strony na podstawie danych z kopii. Jeżeli działa, to jest OK.