N1 Nex1on

Kopie zapasowe i przenoszenie witryny Nex1on: jak nie stracić danych i przeprowadzić się bez strat

Kopia zapasowa bazy, przywracanie, kopia w innym miejscu, przeprowadzka na inny hosting lub pod inny adres i przenoszenie treści między witrynami: krok po kroku, z zabezpieczeniami silnika.

Witryna opiera się na trzech rzeczach: bazie danych, przesłanych plikach i samym silniku. Silnik zawsze można pobrać z archiwum ponownie, ale wpisy, użytkownicy i ustawienia istnieją tylko w bazie, a obrazy i dokumenty tylko w folderze uploads. Poniżej: jak zrobić kopię zapasową, jak przywrócić witrynę, gdy coś pójdzie nie tak, jak przenieść się na inny hosting lub pod inny adres i jak przenosić treści między witrynami.

Co gdzie jest przechowywane #

  • Baza danych: wpisy, strony, produkty, użytkownicy, ustawienia. Zapisuje ją „kopia zapasowa bazy danych”. Plików witryny w kopii nie ma.
  • Folder uploads: przesłane obrazy, filmy, dokumenty. Nie wchodzi w skład kopii bazy; przenosi się go przez FTP.
  • Silnik: pliki z archiwum. Klucz witryny i dostęp do bazy są w folderze config.
Kopia na tym samym serwerze co witryna chroni przed własnym błędem, ale nie przed utratą serwera: jeśli zniknie hosting, zniknie i kopia. Dlatego niżej jest też kopia poza serwerem.

Krok 1. Utwórz kopię zapasową bazy #

Otwórz „System → Kopie i przenoszenie → Kopie zapasowe bazy danych” i naciśnij „Utwórz kopię zapasową”. Plik pojawi się na liście „Istniejące kopie zapasowe”; można go pobrać i usunąć. Leży poza folderem publicznym i pobrać go może tylko osoba zalogowana do panelu.
Strona „Kopie zapasowe bazy danych”: istniejąca kopia, pobieranie i usuwanie
Strona „Kopie zapasowe bazy danych”: istniejąca kopia, pobieranie i usuwanie

Nie czekaj z kopiami na kłopoty. Otwórz blok „Jak często robić kopie i ile przechowywać”: możesz tam ustawić automatyczną kopię co kilka dni (zero oznacza: nie rób) i włączyć kompresję gzip: plik staje się kilka razy mniejszy, a przywracanie odczytuje go jak zwykle.

Krok 2. Przywróć bazę z kopii #

Na dole tej samej strony jest blok „Przywracanie bazy danych”. Wybierz kopię, dla potwierdzenia wpisz ręcznie jej nazwę i naciśnij „Przywróć bazę danych”.
Blok „Przywracanie bazy danych”: wybór kopii i potwierdzenie nazwą pliku
Blok „Przywracanie bazy danych”: wybór kopii i potwierdzenie nazwą pliku

Przywracanie zastępuje wszystko, co jest teraz, tym, co było w kopii: wpisy, zamówienia i ustawienia, które pojawiły się po niej, znikną. Ale nie zostajesz bez drogi powrotu:

  • przed przywróceniem silnik sam robi kopię bieżącej bazy i podaje nazwę jej pliku;
  • jeśli przywracanie zostało przerwane, na górze strony pojawia się „Przywracanie bazy zostało rozpoczęte i nie zakończone” oraz przycisk „Wróć do stanu sprzed próby”;
  • kopia, w której brakuje części tabel, jest oznaczona na liście na czerwono jako „niekompletna”: przywrócenie z niej trzeba potwierdzić osobnym zaznaczeniem, bo brakujące w niej tabele zostaną bez zmian i część danych będzie nowa, a część stara.

Kopię można też wgrać z komputera, w bloku „Wgraj kopię z komputera”: może to zrobić tylko właściciel, po ponownym podaniu hasła. Przyjmowany jest tylko plik .sql lub .sql.gz utworzony przez ten silnik; każdy inny SQL jest odrzucany. Wgrana kopia trafia na listę, a przywrócenie z niej to osobna czynność z potwierdzeniem.

Krok 3. Kopia poza serwerem #

Otwórz „Kopie i przenoszenie → Kopie w innym miejscu”. Kopia jest szyfrowana na witrynie i opuszcza serwer: trafia do magazynu zgodnego z S3, przez WebDAV lub SFTP. Domyślnie ta funkcja jest wyłączona.
Strona „Kopie w innym miejscu”: stan i klucz szyfrowania
Strona „Kopie w innym miejscu”: stan i klucz szyfrowania

Suma kontrolna pliku do odszyfrowania na zrzucie ekranu to przykład dla wersji, z której zrzut pochodzi: porównaj ją z wartością w wydaniu własnej wersji silnika.

  1. Utwórz klucz szyfrowania. Jest pokazywany raz i nigdzie nie jest przechowywany: ani tutaj, ani na serwerze. Bez niego nikt nie otworzy kopii, więc zapisz go w menedżerze haseł albo wydrukuj i trzymaj z dala od witryny.
  2. Pobierz raz plik nx-decrypt.php, porównaj jego sumę SHA-256 z wartością w wydaniu silnika na nex1on.com i przechowuj go razem z kluczem. Kopie otwiera się na własnym komputerze, bez witryny, jednym poleceniem.
  3. Wypełnij ustawienia magazynu. Daj kluczowi magazynu prawo tylko do zapisu, bez usuwania i bez listowania: klucz leży na tej witrynie, a jeśli witryna zostanie zhakowana, klucz z prawem usuwania wymaże też kopie poza serwerem. Dlatego lepiej nie zlecać silnikowi czyszczenia starych kopii (opcja „zachowuj ostatnie” wymaga klucza z prawem usuwania), tylko ustawić okres przechowywania po stronie magazynu: cykl życia obiektów.
  4. Naciśnij „Sprawdź połączenie”: zapisuje jeden mały plik i próbuje usunąć tylko ten plik (klucz z prawem wyłącznie do zapisu nie może usuwać i wtedy plik po prostu zostaje: to nie błąd). W przypadku SFTP porównaj odcisk klucza serwera z tym, który podaje hosting: kopia trafia tylko na serwer z dokładnie tym kluczem.
  5. Gdy dotrze pierwsza kopia, otwórz ją na komputerze i zaznacz „Otworzyłem kopię u siebie, klucz działa”: w ten sposób dowiesz się, że klucz działa, zanim będzie potrzebny.

Wysyłanie można włączyć dopiero po potwierdzeniu, że klucz został zapisany; włączenie i zmiana magazynu wymagają hasła i powodują wysłanie e-maila do każdego właściciela.

Przeprowadzka na inny hosting #

Potrzebujesz trzech rzeczy: świeżej kopii bazy, folderu uploads i archiwum silnika w tej samej wersji co kopia albo nowszej.
  1. Utwórz kopię bazy i pobierz ją. Pobierz folder uploads przez FTP.
  2. Na nowym hostingu utwórz pustą bazę i rozpakuj archiwum silnika (zobacz artykuł o instalacji bez SSH).
  3. Umieść plik kopii (.sql, .sql.gz lub zaszyfrowany .sql.gz.enc) w folderze storage/import.
  4. Otwórz witrynę i na pierwszym ekranie naciśnij „Mam już witrynę Nex1on — przywróć ją z kopii”. Przejdź przez język, kraj i bazę danych: zamiast kolejnego kroku kreator zaproponuje „Przywróć z kopii”.
Kreator instalacji: „Przywróć z kopii”
Kreator instalacji: „Przywróć z kopii”

Kreator sprawdza kopię i niczego nie zapisuje, dopóki nie okaże się, że jest kompletna. Prefiks tabel w bazie musi być taki sam jak w kopii, a jeśli kopię utworzył nowszy silnik, najpierw zainstaluj ten sam.

Celowo nie jest przenoszone to, co nie powinno działać na nowej witrynie bez Twojej wiedzy: sesje i „Zapamiętaj mnie”, linki do resetu hasła i zaproszenia, klucze API i logowania aplikacji, kolejki poczty oraz ustawienia związane ze starym miejscem: źródło aktualizacji, kopie poza serwerem, zaufane proxy, klucze AI i serwisów społecznościowych. Wysyłka poczty zostaje przełączona na „Do pliku”, a logowanie dwuetapowe zostaje wyłączone dla wszystkich.

Na koniec kreator prosi właściciela, by wskazał swoje konto i potwierdził je starym hasłem albo ustawił nowe: dopóki tego nie zrobi, nikt nie zaloguje się jako administrator, a pozostali administratorzy i moderatorzy pozostają zablokowani, dopóki nie odblokujesz ich w sekcji „Użytkownicy”.

Przeprowadzka pod inny adres #

Gdy witryna działa już w nowej domenie, ale wpisy i menu wciąż zawierają starą, otwórz „System → Diagnostyka → Przeniesienie na inny adres”. Może to zrobić tylko właściciel.
„Przeniesienie witryny na inny adres”: krok 1, adresy
„Przeniesienie witryny na inny adres”: krok 1, adresy

Kreator prowadzi krok po kroku i nic nie jest zapisywane, dopóki nie naciśniesz „Zastosuj”:

  1. Wpisz stary i nowy adres i naciśnij „Próba”: zobaczysz, ile wpisów i linków się zmieni, w podziale na sekcje.
  2. Silnik sprawdza, czy pod nowym adresem odpowiada właśnie ta witryna, żeby linki do resetu hasła nie trafiły do kogoś obcego. Jeśli nowy adres nie jest jeszcze gotowy (DNS się przenosi), przycisk jest nieaktywny: popraw DNS i powtórz próbę.
  3. Jeśli masz klucz licencji, jest on powiązany z domeną: silnik powie, czy nowy adres jest w nim uwzględniony. Bez tego witryna przechodzi w tryb darmowy, dopóki klucz nie zostanie przeniesiony.
  4. Dla potwierdzenia wpisz nazwę nowej domeny. Następnie silnik prosi o hasło, sam robi kopię bazy, zapisuje to w dzienniku, wysyła e-mail do właścicieli i zamienia adres.

Konta, tokeny i klucze logowania, dzienniki, kolejka, statystyki, zamówienia i płatności oraz zaszyfrowane wartości nie są zmieniane. Po zamianie kreator pokazuje listę kontrolną tego, czego silnik nie zrobi za Ciebie: logowanie przez serwisy społecznościowe (adres powrotu u dostawcy), domena ciasteczka sesji, adres „Od” oraz SPF, DKIM i DMARC dla poczty, konsole wyszukiwarek, systemy płatności i webhooki, certyfikat i CDN dla nowej nazwy. Dopóki stara nazwa wskazuje na tę witrynę, silnik sam odpowiada na nią przekierowaniem 301 na tę samą ścieżkę pod nowym adresem.

Przenoszenie treści między witrynami #

Jeśli potrzebujesz nie całej bazy, lecz stron, aktualności, tagów i plików, otwórz „Kopie i przenoszenie → Eksport i import”. Zaznacz, co ma trafić do archiwum, i pobierz je. Rzeczy osobiste i poufne nie są przenoszone: żadnych kont, zamówień, e-maili, kluczy ani haseł. Import najpierw tylko sprawdza archiwum: zobaczysz, co zostanie utworzone, zaktualizowane i pominięte, a nic nie zostanie zapisane, dopóki nie potwierdzisz. Ten sam ekran przyjmuje też eksport z WordPressa (.xml) i tabelę (.csv).

Co sprawdzić #

  • Jest świeża kopia bazy i wiesz, gdzie leży.
  • Kopia poza serwerem jest włączona, klucz szyfrowania zapisany z dala od witryny, a pierwsza kopia otwarta na komputerze.
  • Folder uploads jest skopiowany osobno, razem z kopią bazy.
  • Przynajmniej raz sprawdziłeś przywracanie na pustej bazie lub kopii witryny, a nie w dniu awarii.
  • Po przeprowadzce: poczta skonfigurowana, logowanie dwuetapowe włączone, hasła i klucze wpisane ponownie, stary plik kopii usunięty.

Jeśli coś poszło nie tak #

  • „Nie udało się utworzyć kopii zapasowej”. Najczęściej witryna nie ma prawa zapisu do folderu storage/backups: sprawdź uprawnienia.
  • Przywracanie zostało przerwane. Nie wprowadzaj innych zmian, dopóki nie naciśniesz „Wróć do stanu sprzed próby”: przywraca bazę do stanu sprzed przywracania.
  • Kreator mówi, że kopia wymaga aktualizacji, których ten silnik nie ma. Kopię utworzył nowszy silnik lub wydanie z innymi modułami: zainstaluj to samo wydanie i powtórz.
  • Kreator mówi o innym prefiksie tabel. Wróć do kroku „Baza danych” i wpisz prefiks, który ma kopia.
  • Pod nowym adresem nikt nie może pozostać zalogowany. Przy zmianie adresu wszyscy zostają wylogowani: zaloguj się ponownie. Jeśli logowanie się nie utrzymuje, sprawdź domenę ciasteczka sesji w ustawieniach.

Co dalej #

Kopia, której nigdy nie otworzyłeś, pozostaje przypuszczeniem. Wybierz dzień i sprawdź przywracanie na próbnej bazie. To pół godziny, a dnia awarii nie będziesz musiał przeżywać ponownie.
Udostępnij: Telegram WhatsApp

Przeczytaj też

Dyskusja

Komentarze

Dyskusja jeszcze się nie zaczęła

Nikt jeszcze nie skomentował. Bądź pierwszy.

Zgłoś ten wpis