• Nowy
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu
Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu

Backup i odtwarzanie sklepu Pro – automatyczne kopie zapasowe PrestaShop z odtwarzaniem z panelu i bez panelu

Wersja modułu: 1.0.0

Zgodność z PrestaShop: 1.7.x 8.x 9.x

Aktualizacja pliku modułu: 2026-10-05 13:04:07

Aktualizacja danych produktu: 2026-10-05 13:04:21


Backup i odtwarzanie sklepu Pro to moduł PrestaShop, który według harmonogramu wykonuje kopie zapasowe całego sklepu – plików i bazy danych – sprawdza każdą kopię i wysyła ją poza serwer sklepu. Kopie mogą trafiać na drugi dysk lub dysk NAS, na serwer FTP, FTPS lub SFTP oraz do magazynu zgodnego z S3 (Amazon S3, Backblaze B2, Wasabi, Cloudflare R2, Hetzner, OVH, MinIO), a reguły retencji same usuwają starsze kopie. Każde zadanie działa krótkimi krokami i wznawia się w miejscu przerwania, dlatego moduł pracuje także na hostingu współdzielonym z krótkim limitem czasu wykonywania skryptów – z crona, z wiersza poleceń albo z przeglądarki. Kopie można szyfrować hasłem (AES-256), a każdy fragment kopii ma sumę kontrolną SHA-256, sprawdzaną zaraz po wykonaniu kopii i podczas próbnego odtworzenia. Sklep odtworzysz z panelu w trzech krokach – w całości, samą bazę, same pliki, wybrane tabele lub wybrane katalogi – a moduł może najpierw zapisać stan obecny, dzięki czemu samo odtworzenie da się cofnąć. Gdy panel administracyjny w ogóle się nie otwiera, jeden plik pdrestore.php odtwarza kopię bez działającego PrestaShop, także na pustym serwerze. Pulpit jednym zdaniem mówi, czy sklep jest chroniony, i wskazuje, czego brakuje, a e-mail przychodzi, gdy kopia się nie uda albo gdy zbyt długo żadnej nie było. Moduł działa na PrestaShop 1.7.0–9.x i PHP 7.0–8.5, bez Composera, bez dodatkowych bibliotek i bez uruchamiania poleceń systemowych.

178,00 zł
144,72 złnetto
Historia cen:

Opis

Do czego służy moduł

  • Ochrona od pierwszej minuty. Instalacja tworzy profil „Codzienna pełna kopia”: pliki i baza każdej nocy o 03:00, siedem najnowszych kopii na serwerze. Kopie z harmonogramu potrzebują wywołania crona co kilka minut albo wyzwalacza z panelu – pulpit pokazuje gotowy adres i komendę.
  • Kopia, która przetrwa awarię serwera. Kopia leżąca tylko na tym samym serwerze co sklep przepada razem z nim. Moduł wysyła każdą gotową kopię do zaznaczonych miejsc poza serwerem i ostrzega na pulpicie, gdy żadnego takiego miejsca nie ma.
  • Zabezpieczenie przed aktualizacją. Przycisk „Szybka migawka przed aktualizacją” kopiuje bazę oraz moduły, motywy, nadpisania i konfigurację – to, co aktualizacja może zepsuć – bez masy zdjęć, w ułamku czasu pełnej kopii.
  • Naprawa po awarii, włamaniu lub nieudanej zmianie. Odtworzenie całego sklepu albo tylko jego części: bazy, plików, jednej tabeli lub jednego katalogu, na przykład motywu.
  • Odtworzenie na nowym serwerze. Awaryjny skrypt pdrestore.php odtwarza sklep z kopii na pustym serwerze, bez zainstalowanego PrestaShop – po utracie serwera albo przy zmianie hostingu pod tym samym adresem sklepu.

Co trafia do kopii zapasowej

Pięć zakresów kopii

  • Pliki i baza – wszystko, czego trzeba do odbudowania sklepu (zalecane).
  • Tylko baza – mała i szybka kopia, dobra do częstych kopii między pełnymi.
  • Tylko pliki – zdjęcia, moduły, motywy i pozostałe pliki sklepu.
  • Szybka migawka – baza oraz katalogi modules, themes, override, config, app/config, mails, translations, classes i controllers.
  • Własny zakres – baza i zaznaczone katalogi najwyższego poziomu; luźne pliki katalogu głównego (index.php, .htaccess i podobne) są dołączane zawsze.

Baza danych

  • Zrzut w czystym PHP. Tabele, widoki, wyzwalacze, procedury, funkcje i zdarzenia, bez narzędzia mysqldump i bez dostępu do powłoki serwera.
  • Tabele sklepu albo cała baza. Domyślnie kopiowane są tabele z prefiksem sklepu; jedna opcja dołącza wszystkie tabele bazy, na przykład tabele zewnętrznej integracji.
  • Tabele bez wierszy i tabele pominięte. Statystyki odwiedzin, indeks wyszukiwarki, pamięć podręczna i logi trafiają do kopii jako sama struktura. Własne listy pozwalają dodać kolejne tabele kopiowane bez wierszy albo pominąć tabele całkowicie.
  • Zamknięcie sklepu na czas kopiowania bazy. Opcja profilu przełącza sklep w tryb konserwacji tylko na minuty zrzutu bazy, tak aby żadne zamówienie nie zostało uchwycone w połowie zapisu, i otwiera go ponownie – także wtedy, gdy kopia się nie powiedzie.

Pliki i wykluczenia

  • Zawsze pomijane. Pamięć podręczna, logi, sesje, obrazy tymczasowe, katalogi .git i node_modules, katalog kopii samego modułu oraz katalogi kopii innych modułów kopii zapasowych i modułu aktualizacji.
  • Własne wykluczenia. Pomijane ścieżki z symbolem wieloznacznym (themes/*/cache, **/nazwa), pomijane typy plików (np. zip, mp4, psd) i limit rozmiaru pojedynczego pliku.
  • Miniatury i zdjęcia produktów. Osobne opcje pomijają miniatury zdjęć (da się je wygenerować z oryginałów) albo cały katalog zdjęć produktów, gdy zdjęcia mają własną kopię.
  • Pliki zmieniane w trakcie kopii. Plik zmieniony, usunięty lub nieczytelny podczas kopiowania jest odnotowywany w dzienniku, a kopia biegnie dalej.

Kompresja i podział na pliki

  • Cztery poziomy kompresji gzip – brak, lekka, zalecana i najmocniejsza. Dane, które się nie kompresują (zdjęcia, archiwa), moduł sam zapisuje bez kompresji, oszczędzając czas.
  • Kopia podzielona na pliki o wybranej wielkości (domyślnie 256 MB, od 16 do 4096 MB), dzięki czemu wysyłkę można wznawiać, a limity rozmiaru pliku na hostingu nie przeszkadzają. Obsługiwane są pliki sklepu większe niż 2 GB.

Harmonogram i automatyczne kopie

  • Profile kopii. Każdy profil ma własny zakres, harmonogram, miejsca docelowe, reguły usuwania starych kopii i szyfrowanie – na przykład pełna kopia codziennie i dodatkowo sama baza co kilka godzin.
  • Harmonogram. Tylko ręcznie, co kilka godzin (od 1 do 24 godzin albo co 2–7 dób), codziennie, w wybrane dni tygodnia lub raz w miesiącu (w krótszym miesiącu – ostatniego dnia), o godzinie w strefie czasowej sklepu.
  • Trzy sposoby uruchamiania. Adres crona z tajnym tokenem (wywoływany co 5 minut, nowy adres jednym kliknięciem), wiersz poleceń php modules/pdbackupandrestorepro/cli.php z komendami cron, run i status – bez limitu czasu – oraz wyzwalacz z panelu dla hostingów bez crona, który uruchamia zaległą kopię przy wizycie pracownika w panelu.
  • Krótkie, wznawiane kroki. Czas jednego kroku ustawiasz od 5 do 120 sekund (zalecane 20). Po każdym kroku postęp jest zapisywany, a adres crona sam wywołuje kolejny krok; gdy serwer na to nie pozwala, kopię kontynuuje następne wywołanie crona.
  • Postęp na żywo. Pasek postępu, bieżący etap i ostatnie zdarzenia. Zamknięcie karty przeglądarki nie przerywa kopii, a przycisk „Zatrzymaj” kończy ją w najbliższym bezpiecznym miejscu.
  • Jedno zadanie naraz. Blokada w bazie i blokada pliku nie pozwalają, by dwa procesy (np. cron i karta przeglądarki) wykonywały tę samą kopię jednocześnie. Zadanie, które trzy razy z rzędu nie zrobi postępu, kończy się błędem z podaną przyczyną.

Gdzie przechowywać kopie: dysk, NAS, FTP, FTPS, SFTP, S3

  • Inny katalog na tym serwerze – drugi dysk albo zamontowany dysk sieciowy (NAS), poza katalogiem sklepu.
  • FTP i FTPS. FTPS szyfruje połączenie i sprawdza certyfikat serwera (sprawdzanie można wyłączyć dla własnego serwera z certyfikatem podpisanym samodzielnie); tryb pasywny lub aktywny.
  • SFTP (SSH). Logowanie hasłem albo kluczem prywatnym (RSA w formacie PEM lub klucz OpenSSH, także zabezpieczony hasłem; klucze ed25519 tam, gdzie obsługuje je cURL hostingu) oraz opcjonalny odcisk klucza serwera, z którym moduł rozmawia wyłącznie z właściwym serwerem.
  • Magazyn zgodny z S3. Amazon S3, Backblaze B2, Wasabi, Cloudflare R2, Hetzner, OVH, MinIO i inne usługi zgodne z S3: adres usługi, region, bucket, katalog w buckecie (kilka sklepów w jednym buckecie) i adresowanie bucketu w ścieżce. Duże pliki są wysyłane w częściach, a moduł nigdy nie zmienia ustawień samego bucketu.
  • Test połączenia. Przycisk „Testuj połączenie” zapisuje, odczytuje i usuwa plik próbny, a gdy usługa to podaje – pokazuje wolne miejsce. Wynik ostatniego testu widać na liście miejsc docelowych.
  • Wznawiana wysyłka. Kopia jest wysyłana do zaznaczonych miejsc po kolei i w częściach; przerwana wysyłka wznawia się od miejsca, w którym stanęła, a na serwerach FTP, FTPS i SFTP rozmiar wysłanego pliku jest porównywany z oryginałem. Resztki kopii, której nie udało się wysłać, są usuwane z miejsca docelowego.
  • Skrypt odtwarzania razem z kopią. Domyślnie do każdego miejsca poza serwerem trafia też pdrestore.php, więc kopię da się odtworzyć nawet wtedy, gdy sklepu i jego panelu już nie ma.

Usuwanie starych kopii (retencja)

  • W miejscach docelowych. Liczba najnowszych kopii zachowywanych w każdym miejscu, usuwanie kopii starszych niż wybrana liczba dni oraz długa historia według schematu dzień–tydzień–miesiąc: dodatkowo najnowsza kopia z każdego z ostatnich dni, tygodni lub miesięcy.
  • Na tym serwerze. Osobna liczba najnowszych kopii i osobny limit wieku. Przy braku miejsca na dysku profil może usuwać kopię z serwera, gdy dotrze ona do co najmniej jednego miejsca docelowego.
  • Czego reguły nie usuwają. Najnowszej dobrej kopii, kopii oznaczonych jako chronione (na liście kopii albo dla całego profilu, np. migawek przed aktualizacją) i kopii, z której przygotowano odtwarzanie. Stare kopie są usuwane dopiero po tym, jak nowa kopia dotrze na miejsce.
  • Sprzątanie resztek. Gdy profil nie trzyma kopii na serwerze, kopie pobrane do odtworzenia znikają z serwera po tygodniu, a z kopii, których nie udało się wysłać, zostają tam dwie najnowsze. Usunięcie przerwane w połowie jest ponawiane. Z kopii wykonanych z wiersza poleceń bez profilu na serwerze zostaje siedem najnowszych.

Szyfrowanie kopii i bezpieczeństwo

  • AES-256 z kontrolą integralności. Każdy fragment kopii jest szyfrowany algorytmem AES-256 (tryb CTR) i podpisany HMAC-SHA256; klucz powstaje z hasła przez PBKDF2-SHA256 (200 000 iteracji). Zaszyfrowana jest także lista plików kopii, więc nazwy plików nie są widoczne.
  • Wykrywanie podmiany. Opis kopii (manifest) jest podpisany, a każdy fragment związany z kopią, plikiem i miejscem w pliku – podmieniony, przestawiony lub podłożony z innej kopii fragment nie przejdzie kontroli.
  • Hasło kopii. Co najmniej 12 znaków, wpisywane dwa razy, przechowywane w postaci zaszyfrowanej i nigdzie więcej niepokazywane. Bez hasła zaszyfrowanej kopii nie odtworzy nikt, także autor modułu. Nowe hasło dotyczy przyszłych kopii.
  • Zaszyfrowane dane logowania. Hasła i klucze miejsc docelowych są przechowywane w bazie w postaci zaszyfrowanej i nie wracają do formularza.
  • Katalog kopii zamknięty dla internetu. Przy instalacji moduł wybiera katalog poza publiczną częścią strony, jeśli hosting na to pozwala; w przeciwnym razie folder o losowej nazwie z plikami ochronnymi. Przycisk „Sprawdź z internetu” na pulpicie sprawdza, czy pliki z katalogu da się pobrać, a dla nginx podaje gotową regułę blokującą.
  • Ostrzeżenia w panelu. Lista profili ostrzega, gdy niezaszyfrowane kopie trafiają poza serwer, a lista miejsc docelowych – gdy miejsce SFTP nie sprawdza klucza serwera.
  • Bez połączeń z serwerami autora. Moduł nie wysyła danych do autora i nie uruchamia poleceń systemowych; poza własnym sklepem łączy się wyłącznie z miejscami docelowymi i adresem monitoringu, które sam ustawisz.

Weryfikacja kopii i próbne odtworzenie

  • Sprawdzenie każdej kopii. Po wykonaniu kopia jest odczytywana ponownie, a sumy SHA-256 wszystkich jej fragmentów porównywane z zapisanymi. Na liście kopia ma wtedy status „zweryfikowana”.
  • Próbne odtworzenie. Pełny odczyt kopii – odszyfrowanie, dekompresja, sprawdzenie archiwum i policzenie instrukcji SQL względem opisu kopii – bez żadnych zmian w sklepie. Kopia przechowywana tylko poza serwerem jest do tego pobierana.
  • Przypomnienie. Pulpit zaznacza, gdy w ostatnim miesiącu żadna kopia nie została odczytana w całości.

Odtwarzanie sklepu z kopii w panelu

  • Kreator w trzech krokach. Wybór kopii, wybór tego, co ma wrócić, i potwierdzenie przez wpisanie adresu sklepu. Do potwierdzenia nic się nie zmienia.
  • Pięć zakresów odtwarzania. Wszystko, co jest w kopii; tylko baza danych; tylko pliki; wybrane tabele; wybrane katalogi (np. themes/classic albo img/p).
  • Najpierw stan obecny. Zalecana opcja wykonuje przed odtworzeniem chronioną kopię tego, co zostanie zastąpione – przy kopiach szyfrowanych zaszyfrowaną hasłem profilu. Jeśli odtworzenie okaże się pomyłką, wracasz do stanu sprzed niego.
  • Kontrola przed startem. Wolne miejsce na dysku, prawo zapisu w katalogu sklepu, zgodność prefiksu tabel, wersja PrestaShop, z której pochodzi kopia, i hasło kopii zaszyfrowanej. Ostrzeżenia są pokazane przed potwierdzeniem.
  • Bezpieczne wykonanie. Na czas odtwarzania sklep jest zamknięty dla klientów i otwierany na końcu. Odtwarzanie działa na osobnej stronie poza panelem, bo sam panel jest w tym czasie zastępowany; po przerwaniu rusza od miejsca, w którym stanęło, a strona usuwa się po zakończeniu.
  • Plik ustawień i logowanie. Plik ustawień PrestaShop pochodzi z kopii, ale zachowuje połączenie z bazą bieżącego serwera. Po odtworzeniu bazy pracownicy logują się kontami z dnia wykonania kopii.
  • Kopie spoza serwera. Kopię przechowywaną tylko w miejscu docelowym przycisk „Pobierz i sprawdź” pobiera i od razu odczytuje w całości, zanim posłuży do odtworzenia.
  • Kopie z nowszego serwera bazy. Przy odtwarzaniu kopii wykonanej na nowszej wersji MySQL lub MariaDB nieznane kolacje i usunięte tryby SQL są zastępowane odpowiednikami, a pozostałe błędy są zgłaszane.
  • Przerwane odtwarzanie. Odtwarzanie, które przez 10 minut nie da znaku życia, można porzucić z panelu – sklep zostaje ponownie otwarty, a kopie znów są wykonywane.

Awaryjne odtwarzanie bez panelu: pdrestore.php

  • Jeden plik. pdrestore.php pobierzesz z zakładki Odtwarzanie; domyślnie leży też w każdym miejscu docelowym obok kopii.
  • Bez PrestaShop. Wgrywasz skrypt razem z plikami kopii (nazwy zaczynające się od pdbr-) do katalogu sklepu i otwierasz go w przeglądarce. Gdy na serwerze nie ma sklepu, skrypt pyta o dane bazy danych.
  • Dowód dostępu do serwera. Skrypt tworzy obok siebie plik z kodem, który trzeba przepisać – nikt obcy, kto zna adres skryptu, go nie użyje.
  • Wznawianie i sprzątanie. Po zerwaniu połączenia odtwarzanie rusza od ostatniego ukończonego kroku, a na koniec skrypt usuwa się z serwera jednym przyciskiem. Interfejs po polsku i angielsku.

Pulpit: czy sklep jest chroniony?

  • Ocena w jednym zdaniu. Na przykład „Sklep jest chroniony. Ostatnia kopia jest z …, następna zaplanowana na …” albo konkretny problem: brak kopii, nieudana kopia, zbyt stara kopia, niedziałający cron, brak miejsca poza serwerem, katalog kopii otwarty z internetu.
  • Lista kontrolna. Ostatnia kopia, jej wiek, harmonogram, cron, kopia poza serwerem, katalog kopii, powiadomienia i próbne odtworzenie – każdy punkt z przyciskiem prowadzącym do miejsca, w którym go naprawisz.
  • Kafelki, wykres i zdarzenia. Ostatnia dobra kopia, następna kopia, liczba kopii na serwerze (z ich rozmiarem) i w każdym miejscu docelowym, wolne miejsce na dysku, wykres rozmiaru i czasu ostatnich kopii oraz ostatnie zdarzenia z dziennika.
  • Cztery pytania na start. Co kopiować, gdzie trzymać kopie, kiedy i kogo powiadomić – odpowiedzi zapisują się w profilu. Nowe miejsce docelowe dodasz w trakcie, a po udanym teście połączenia wrócisz do pytań z tym miejscem zaznaczonym.
  • Test środowiska. Wersja PHP, rozszerzenia, limity czasu i pamięci, katalog kopii i wolne miejsce na dysku – z wyjaśnieniem, co każde ograniczenie oznacza.
  • Nagłówek na każdej zakładce. Ostatnia dobra kopia, najbliższa zaplanowana kopia i stan ochrony widoczne z każdej strony modułu.

Powiadomienia e-mail i monitoring

  • Alarmy. E-mail, gdy kopia się nie uda; gdy kopia powstała, ale nie dotarła do wszystkich miejsc docelowych; gdy profil nie ma dokąd jej wysłać; gdy kopia z harmonogramu nie mogła się rozpocząć oraz gdy przez ustawiony czas (domyślnie 48 godzin) nie ma udanej kopii.
  • Potwierdzenia. Opcjonalny e-mail po każdej udanej kopii, z rozmiarem i liczbą miejsc, w których jest przechowywana.
  • Odbiorcy i język. Dowolna lista adresów (puste pole = adres e-mail sklepu); wiadomości w języku domyślnym sklepu, po polsku albo po angielsku.
  • Adres monitoringu (heartbeat). Wywoływany po każdej udanej kopii, dzięki czemu zewnętrzna usługa monitoringu powiadomi Cię, gdy kopie przestaną powstawać. Ustawienia pokazują, kiedy ostatnio odezwał się cron, a pulpit alarmuje, gdy cron przestał wywoływać sklep.

Lista kopii i dziennik

  • Lista kopii. Profil, zawartość, rozmiar, czas trwania, miejsca przechowywania, wynik weryfikacji i ochrona. Szczegóły kopii: rozmiar przed kompresją, liczba plików i tabel, szyfrowanie oraz wersje PrestaShop i modułu, które ją wykonały.
  • Działania na kopii. Pobranie plików kopii na własny komputer (z możliwością wznowienia pobierania), notatka, ochrona przed automatycznym usuwaniem, próbne odtworzenie, odtworzenie i usunięcie ze wszystkich miejsc naraz.
  • Znajdź kopie w katalogu. Kopie leżące w katalogu kopii, a nieobecne na liście (np. przeniesione z innego serwera), są dodawane do listy jednym przyciskiem.
  • Dziennik. Każdy krok kopii, wysyłki i odtwarzania z czytelnym, przetłumaczonym komunikatem; filtrowanie i pobieranie dziennika jako pliku tekstowego. Pobrania kopii, odtworzenia i porzucenia odtwarzania – z nazwą pracownika – są przechowywane przez dwa lata, pozostałe wpisy przez sześć miesięcy.

Otwarty format kopii

  • Zwykłe archiwa .tar.gz. Niezaszyfrowaną kopię otworzy każdy program do archiwów (7-Zip, WinRAR, tar), a baza jest w środku jako pliki SQL w katalogu db – kopia nie uzależnia od modułu.
  • Niezależne fragmenty. Każdy plik kopii składa się z fragmentów kompresowanych i sprawdzanych osobno, dzięki czemu kopię, weryfikację, wysyłkę i odtwarzanie można wznawiać po przerwie.

Uprawnienia, wiele sklepów i odinstalowanie

  • Uprawnienia pracowników. Pracownik z prawem podglądu widzi kopie, postęp i dziennik; uruchamianie kopii, pobieranie plików kopii, odtwarzanie i zmiana ustawień wymagają prawa edycji. Każde działanie w panelu sprawdza token bezpieczeństwa i uprawnienia.
  • Wiele sklepów (multistore). Kopia obejmuje całą instalację PrestaShop – wszystkie sklepy naraz – a ustawienia modułu są wspólne dla instalacji.
  • Odinstalowanie. Usuwa ustawienia modułu, harmonogramy i historię kopii. Pliki kopii na dysku i w miejscach docelowych zostają.

Wymagania i zgodność

  • PrestaShop 1.7.0–9.x, PHP 7.0–8.5 (64-bitowe), MySQL 5.6+ lub MariaDB 10+.
  • Rozszerzenia PHP. zlib (kompresja, wymagane), OpenSSL (szyfrowanie kopii i ochrona danych logowania), cURL (FTP, FTPS, SFTP, S3, sprawdzanie katalogu kopii z internetu i adres monitoringu); SFTP wymaga cURL zbudowanego z obsługą SFTP. Ustawienie mbstring.func_overload musi być wyłączone.
  • Małe wymagania pamięciowe. Sam silnik kopii potrzebuje około 20 MB pamięci; krótki limit czasu żądania nie przeszkadza.
  • Bez zależności. Bez Composera, bez dołączonych bibliotek, bez exec i poleceń powłoki.
  • Języki. Interfejs modułu, e-maile i skrypt odtwarzania po polsku i angielsku.

Ważne granice działania (wersja 1.0)

  • Odtworzenie pod innym adresem sklepu albo do bazy z innym prefiksem tabel nie jest obsługiwane – moduł odmawia przed pierwszą zmianą.
  • Każda kopia jest pełną kopią swojego zakresu; kopie przyrostowe nie są dostępne.
  • Wśród miejsc docelowych nie ma Google Drive ani Dropbox.
  • Odtworzenie nie usuwa plików ani tabel, które pojawiły się w sklepie po wykonaniu kopii.
  • Widoki, wyzwalacze i procedury wracają tylko przy odtwarzaniu całej bazy.
  • Kopia bazy wykonywana przez adres crona lub przeglądarkę powstaje w wielu krótkich krokach; w ruchliwym sklepie zalecana jest opcja zamknięcia sklepu na czas kopiowania bazy albo uruchamianie kopii z wiersza poleceń.
  • Kopie z harmonogramu wymagają crona; wyzwalacz z panelu jest wyjściem awaryjnym zależnym od wizyt pracowników.
  • Skrypt awaryjny potrzebuje pliku opisu kopii (nazwa kończy się na .manifest.json).
  • Odinstalowanie zostawia w katalogu sklepu pliki rozpoczętego i niedokończonego odtwarzania (pdbr-restore-*) – trzeba je dokończyć, porzucić w panelu albo usunąć ręcznie.
  • Dziennik przez dwa lata przechowuje nazwy pracowników, którzy pobrali kopię lub odtworzyli sklep – warto to uwzględnić w rejestrze czynności przetwarzania danych osobowych.

Szczegóły Produktu

Obsługa Prestashop 9.x
Tak
Obsługa Prestashop 8.x
Tak
Obsługa Prestashop 1.7.x
Tak
Tłumaczenia modułu
PL, ENG
Darmowe wsparcie (30 dni)
Tak
Darmowe aktualizacje (1 rok)
Tak
PDBARPRO

FAQ

Znajdź odpowiedzi na najczęściej zadawane pytania dotyczące tego produktu.

Moduł według harmonogramu wykonuje kopie zapasowe plików i bazy danych sklepu PrestaShop, sprawdza każdą kopię i wysyła ją do wybranych miejsc poza serwerem: na drugi dysk lub NAS, na serwer FTP, FTPS lub SFTP albo do magazynu zgodnego z S3. Stare kopie usuwa według ustawionych reguł, a e-mailem informuje, gdy kopia się nie uda albo gdy zbyt długo żadnej nie było. Z kopii odtworzysz sklep w panelu, a gdy panel nie działa – awaryjnym skryptem pdrestore.php.

Moduł działa na PrestaShop 1.7.0–9.x i PHP 7.0–8.5 w wersji 64-bitowej, z bazą MySQL 5.6+ lub MariaDB 10+. Wymaga rozszerzenia zlib; OpenSSL jest potrzebny do szyfrowania kopii i ochrony zapisanych danych logowania, a cURL do miejsc FTP, FTPS, SFTP i S3 (SFTP wymaga cURL z obsługą SFTP). Moduł nie potrzebuje Composera ani dodatkowych bibliotek i nie uruchamia poleceń systemowych, więc działa także na hostingu, który blokuje exec.

Do wyboru jest pięć zakresów: pliki i baza (cały sklep, zalecane), tylko baza, tylko pliki, szybka migawka (baza oraz moduły, motywy, nadpisania, konfiguracja, szablony e-maili, tłumaczenia, klasy i kontrolery) oraz własny zakres (baza i wybrane katalogi). Kopia bazy obejmuje tabele, widoki, wyzwalacze, procedury, funkcje i zdarzenia. Pamięć podręczna, logi, sesje, obrazy tymczasowe oraz katalogi .git i node_modules są pomijane zawsze, a statystyki odwiedzin, indeks wyszukiwarki i logi trafiają do kopii jako sama struktura tabel, bez wierszy.

Tak. Każde zadanie – kopia, wysyłka, weryfikacja i odtwarzanie – pracuje krótkimi krokami (domyślnie 20 sekund, do ustawienia od 5 do 120) i po każdym kroku zapisuje postęp, a kolejny krok rusza przy następnym wywołaniu. Dzięki temu kopia dużego sklepu powstaje także na hostingu z limitem 30 sekund na żądanie. Sam silnik kopii potrzebuje około 20 MB pamięci.

W profilu kopii wybierasz częstotliwość – co kilka godzin, codziennie, w wybrane dni tygodnia albo raz w miesiącu – oraz godzinę w strefie czasowej sklepu. Kopie z harmonogramu potrzebują zadania cron na hostingu wywoływanego co 5 minut: adresu z tajnym tokenem albo komendy php modules/pdbackupandrestorepro/cli.php cron. Pulpit pokazuje gotowy adres i komendę do skopiowania oraz ostrzega, gdy cron przestał wywoływać sklep. Zaraz po instalacji moduł ma profil „Codzienna pełna kopia”, który kopiuje pliki i bazę codziennie o 03:00.

W zakładce Ustawienia, w sekcji Automatyzacja, włącz wyzwalacz z panelu: gdy zaplanowana kopia jest zaległa, wizyta dowolnego pracownika w panelu uruchamia ją w tle. To wyjście awaryjne – kopie zależą wtedy od tego, czy ktoś zajrzy do panelu. Kopię możesz też zawsze uruchomić ręcznie przyciskiem na pulpicie i śledzić jej postęp na żywo.

Kopie zostają w katalogu kopii na serwerze sklepu i są wysyłane do miejsc docelowych: innego katalogu na serwerze (drugi dysk, zamontowany NAS), serwera FTP, FTPS lub SFTP oraz magazynu zgodnego z S3, np. Amazon S3, Backblaze B2, Wasabi, Cloudflare R2, Hetzner, OVH lub MinIO. Jeden profil może wysyłać kopie do kilku miejsc. Google Drive i Dropbox nie są obsługiwane w wersji 1.0.

Tak. Włącz na NAS-ie usługę FTPS lub SFTP, załóż konto z prawem zapisu w katalogu kopii i dodaj je w module jako miejsce docelowe (zwykłe FTP nie szyfruje połączenia i nadaje się tylko do zaufanej sieci). Przy certyfikacie podpisanym samodzielnie wyłącz w miejscu docelowym sprawdzanie certyfikatu. NAS zamontowany jako dysk na serwerze sklepu dodasz jako „Inny katalog na tym serwerze”. Przycisk „Testuj połączenie” od razu sprawdza zapis, odczyt i usunięcie pliku próbnego.

Dla miejsc docelowych ustawiasz, ile najnowszych kopii zostaje w każdym miejscu, po ilu dniach usuwać starsze oraz opcjonalnie długą historię: dodatkowo najnowszą kopię z każdego z ostatnich dni, tygodni lub miesięcy. Dla serwera sklepu jest osobny limit liczby i wieku kopii, a profil może usuwać kopię z serwera, gdy dotrze do miejsca docelowego. Najnowsza dobra kopia i kopie oznaczone jako chronione nigdy nie są usuwane, a stare kopie znikają dopiero wtedy, gdy nowa dotrze na miejsce.

Szyfrowanie włączasz w profilu kopii: każdy fragment kopii jest szyfrowany algorytmem AES-256 i podpisany HMAC-SHA256, a klucz powstaje z Twojego hasła (co najmniej 12 znaków). Zaszyfrowana jest także lista plików kopii. Bez hasła zaszyfrowanej kopii nie odtworzy nikt, także autor modułu – zapisz hasło i przechowuj je poza sklepem. Nowe hasło dotyczy tylko przyszłych kopii; wcześniejsze wymagają hasła, z którym powstały.

Każdy fragment kopii ma sumę kontrolną SHA-256. Zaraz po wykonaniu kopia jest odczytywana ponownie i sprawdzana, a na liście dostaje status „zweryfikowana”. Dodatkowo „Próbne odtworzenie” czyta całą kopię – odszyfrowuje ją, rozpakowuje, sprawdza archiwum i liczy instrukcje SQL względem opisu kopii – bez żadnych zmian w sklepie. Pulpit przypomina, gdy w ostatnim miesiącu żadna kopia nie została odczytana w całości.

W zakładce Odtwarzanie (albo przyciskiem „Odtwórz tę kopię” na liście kopii) wybierasz kopię i zakres, a następnie potwierdzasz, wpisując adres sklepu. Przed odtworzeniem moduł może zapisać stan obecny jako chronioną kopię, dzięki czemu samo odtworzenie da się cofnąć. Na czas odtwarzania sklep jest zamknięty dla klientów; odtwarzanie działa na osobnej stronie poza panelem i po przerwaniu rusza od miejsca, w którym stanęło. Po odtworzeniu bazy logujesz się kontem pracownika z dnia wykonania kopii.

Tak. Kreator odtwarzania ma pięć zakresów: wszystko z kopii, tylko baza danych, tylko pliki, wybrane tabele oraz wybrane katalogi (np. themes/classic albo img/p). Przy odtwarzaniu samych plików, np. po nieudanej aktualizacji motywu, zamówienia złożone po wykonaniu kopii zostają w bazie. Widoki, wyzwalacze i procedury wracają tylko przy odtwarzaniu całej bazy.

Użyj awaryjnego skryptu pdrestore.php: pobierzesz go z zakładki Odtwarzanie, a domyślnie leży też w każdym miejscu docelowym obok kopii. Wgraj go razem z plikami kopii (nazwy zaczynające się od pdbr-) do katalogu sklepu i otwórz w przeglądarce. Skrypt nie potrzebuje działającego PrestaShop; dostęp otwiera kod z pliku, który skrypt tworzy obok siebie, a po zakończeniu usuwa się z serwera jednym przyciskiem. Skrypt potrzebuje pliku opisu kopii (nazwa kończy się na .manifest.json).

Na nowym, pustym serwerze – tak: skrypt pdrestore.php zapyta o dane bazy danych i odtworzy sklep z kopii, np. po utracie serwera albo przy zmianie hostingu. Adres sklepu i prefiks tabel pozostają takie jak w kopii: odtworzenie pod inną domeną albo do bazy z innym prefiksem tabel nie jest obsługiwane w wersji 1.0, a moduł odmawia go przed pierwszą zmianą.

Tak, jeśli nie jest zaszyfrowana: pliki kopii to zwykłe archiwa .tar.gz, które otworzy 7-Zip, WinRAR albo polecenie tar, a baza danych jest w środku jako pliki SQL w katalogu db. Kopię zaszyfrowaną odczyta moduł albo skrypt pdrestore.php po podaniu hasła.

Domyślnie nie – kopia powstaje przy otwartym sklepie. Opcja profilu „Zamknij sklep na czas kopiowania bazy” włącza tryb konserwacji tylko na minuty zrzutu bazy, aby żadne zamówienie nie zostało uchwycone w połowie zapisu, i otwiera sklep ponownie, także gdy kopia się nie uda. Jest zalecana dla ruchliwych sklepów, których kopia idzie przez adres crona; kopia z wiersza poleceń z długim limitem czasu jej nie potrzebuje. Na czas odtwarzania sklep jest zamykany zawsze.

Pełna kopia potrzebuje na serwerze mniej więcej tyle miejsca, ile zajmują pliki i baza sklepu. Kopia jest dzielona na pliki o wybranej wielkości (domyślnie 256 MB, od 16 do 4096 MB), a pojedyncze pliki sklepu mogą mieć ponad 2 GB. Przy braku miejsca profil może usuwać kopię z serwera po dostarczeniu jej do miejsca docelowego, a mniejszą kopię dają pomijanie miniatur zdjęć (da się je wygenerować ponownie), wybranych typów plików lub plików powyżej ustalonego rozmiaru.

E-mail przychodzi, gdy kopia się nie uda; gdy powstała, ale nie dotarła do wszystkich miejsc docelowych; gdy profil nie ma dokąd jej wysłać; gdy kopia z harmonogramu nie mogła się rozpocząć oraz gdy przez ustawiony czas (domyślnie 48 godzin) nie ma udanej kopii. Opcjonalnie dostaniesz e-mail po każdej udanej kopii. Wiadomości przychodzą w języku domyślnym sklepu (po polsku albo po angielsku), a po każdej udanej kopii moduł może wywołać adres monitoringu (heartbeat) zewnętrznej usługi.

Pulpit jednym zdaniem ocenia, czy sklep jest chroniony, i pokazuje listę kontrolną: ostatnia kopia i jej wiek, harmonogram, cron, kopia poza serwerem, katalog kopii zamknięty dla internetu, powiadomienia i próbne odtworzenie – każdy punkt z przyciskiem do miejsca naprawy. Są też kafelki z ostatnią i następną kopią, liczbą kopii i wolnym miejscem, wykres rozmiaru i czasu ostatnich kopii, ostatnie zdarzenia, test środowiska serwera oraz cztery pytania startowe do szybkiej konfiguracji.

Na pulpicie użyj przycisku „Szybka migawka przed aktualizacją”. Migawka kopiuje bazę oraz moduły, motywy, nadpisania i konfigurację – to, co aktualizacja może zepsuć – bez masy zdjęć, więc trwa ułamek czasu pełnej kopii. Kopię możesz opisać notatką, np. „przed aktualizacją do 9.1”, i oznaczyć jako chronioną, aby reguły usuwania starych kopii jej nie usunęły.

Tak. Kopia obejmuje całą instalację PrestaShop – pliki i bazę wszystkich sklepów naraz – a ustawienia modułu są wspólne dla całej instalacji. Odtwarzanie przywraca tę instalację w całości albo w wybranym zakresie.

Decydują uprawnienia profilu pracownika w PrestaShop: pracownik z prawem podglądu widzi kopie, postęp i dziennik, a uruchamianie kopii, pobieranie plików kopii, odtwarzanie i zmiana ustawień wymagają prawa edycji. Dziennik przez dwa lata przechowuje, kto pobrał kopię, odtworzył sklep albo porzucił odtwarzanie, a pozostałe wpisy przez sześć miesięcy.

Hasła i klucze do miejsc docelowych oraz hasło szyfrowania kopii są przechowywane w bazie w postaci zaszyfrowanej i nie są ponownie wyświetlane. Katalog kopii moduł wybiera poza publiczną częścią strony, jeśli hosting na to pozwala, a w przeciwnym razie używa folderu o losowej nazwie z plikami ochronnymi; przycisk „Sprawdź z internetu” na pulpicie sprawdza, czy kopii nie da się pobrać przez stronę, i dla nginx podaje gotową regułę blokującą. Moduł nie wysyła danych do autora – poza własnym sklepem łączy się wyłącznie z miejscami docelowymi i adresem monitoringu, które sam ustawisz.

Tak. Komenda php modules/pdbackupandrestorepro/cli.php run wykonuje kopię profilu (--profile=ID) albo wybranego zakresu (--scope=full, database, files lub snapshot), cron uruchamia zaplanowane kopie, a status pokazuje bieżące zadanie. Z wiersza poleceń kopia nie ma limitu czasu; uruchamiaj komendy jako użytkownik, który jest właścicielem plików sklepu. Kopie z parametrem --scope nie należą do żadnego profilu – na serwerze zostaje siedem najnowszych.

Odinstalowanie usuwa ustawienia modułu, harmonogramy i historię kopii, ale pliki kopii na dysku i w miejscach docelowych zostają. Pliki rozpoczętego, a niedokończonego odtwarzania (pdbr-restore-*) trzeba przed odinstalowaniem dokończyć albo porzucić w panelu; w przeciwnym razie zostają w katalogu sklepu i usuwa się je ręcznie.

Komentarze (0)

Brak recenzji