wrz
13
2012

Przeniesienie sklepu na inny serwer (zmiana serwera/hostingu)

Dla każdego z nas (programisty lub sprzedawcy) przychodzi dzień, w którym zaczynamy rozumieć dlaczego jedne hostingi są tanie, a drugie dobre :) Na rozpoczęciu prowadzenia działalności wielu przedsiębiorców nie rozumie znaczenia jakości hostingu, który de facto jest podstawowym elementem konstrukcji ich biznesu w internecie. Na szczęście z czasem to się zmienia…

Z doświadczenia wiem, że zanim przystąpimy do prac związanych z przenosinami, musimy spisać pełną listę układanki, aby puzzle naszego systemu się nie rozsypały :) Opiszę to w sposób, który pozwoli na ciągłość działania sklepu oraz uniknięcie dodatkowej synchronizacji bazy danych i poczty, która jest problematyczna.

Artykuł jest skierowany do małych oraz średnich sklepów. Przenosiny sklepu internetowego oraz innych elementów z nim związanych opiszę w kilku etapach. Jest to problem dość obszerny, dlatego też proponuję Wam zlecić go osobie siedzącej w temacie web developmentu, z poleceniem wykonywania prac w godzinach nocnych :)


Lista rzeczy do zrobienia:

  1. Rejestracja domeny na innym serwerze.
  2. Przeniesienie zawartości FTP.
  3. Instalacja certyfikatu SSL (jeżeli posiadamy).
  4. Przeniesienie bazy danych.
  5. Zmiany konfiguracyjne w systemie sklepu oraz serwera.
  6. Przenosiny poczty/e-maili.
  7. Zmiana DNS.
  8. Synchronizacja poczty i bazy danych w trakcie aktualizacji DNS.

Rejestracja domeny na innym serwerze
Najczęściej jest możliwość wykonania tego w Panelu Administracyjnym hostingu. Dodajemy katalog o nazwie domeny na FTP, aby ułatwić późniejszą nawigację w strukturze katalogów. Dodajemy domenę w PA, wskazujemy ją na katalog, który przed momentem utworzyliśmy. Po kilkunastu minutach domena powinna być widoczna w rejestrze DNS serwera.

Przeniesienie zawartości FTP
Po rejestracji domen, możemy zająć się kopiowaniem plików z jednego serwera na drugi. Polecam Total Commanderem lub FileZilla. TC nie jest dobry przy kopiowaniu dużej ilości plików tj. więcej niż 500, potrafi zerwać połączenie bez informacji, na którym pliku skończył. Druga opcja FileZilla pozwala wrzucić ściąganie plików w kolejkę, dzięki temu mamy wgląd w historię pobrań. Na tym etapie nie będziemy jeszcze zmieniać konfigów, zrobimy to po skopiowaniu bazy danych.

Instalacja certyfikatu SSL
Część sklepów posiada certyfikat SSL zainstalowany w swoim sklepie internetowym. Przy przenosinach jest z tym trochę zabawy, lecz spokojna głowa, jeżeli mamy dobry hosting, to jego obsługa zrobi to za nas :) Zostanie dla nas tylko jedna rzecz, przesłać do nich (administracja nowego serwera) dwa pliki związane z certyfikatem: certyfikat z rozszerzeniem .cer oraz klucz prywatny .crt. Pliki te, powinniśmy mieć gdzieś zapisane na swoim dysku twardym w momencie zakupu certyfikatu.

Przeniesienie bazy danych
Najlepiej zająć się tym tematem w godzinach nocnych, tak aby możliwie uniknąć potrzeby synchronizacji starej bazy z nową. Tworzymy bazę danych w panelu hostingowym, z dowolnymi danymi dostępowymi. Zmiany tego i tak będziemy musieli dokonać w konfiguracji sklepu, ze względu na zmianę adresu hosta bazy danych. Po utworzeniu bazy, możemy rozpocząć jej kopiowanie. Najłatwiej zrobić to przez dobrze znany phpMyAdmin :)

  1. Logujemy się, wybieramy naszą BD i wybieramy zakładkę Export.
  2. W sekcji Metoda eksportu wybieramy opcję Zaawansowane.
  3. Wszystkie tabele mają być zaznaczone.
  4. W sekcji Wyjście, zaznaczamy Zapisz jako plik i wybieramy Kompresję bzipped.
  5. Zaznaczamy format SQL.
  6. Zrzut tabeli z opcją struktura i dane lub Pełne dodania.
  7. Zaznaczamy także Dodaj DROP TABLE, Dodaj CREATE PROCEDURE, CREATE TABLE, IF NOT EXISTS, AUTO_INCREMENT oraz Użyj cudzysłowów z nazwami tabel i pól.
  8. Wartość dla pola Maksymalna długość utworzonego zapytania ustawiamy na 300. Bez tej opcji przy dużej ilości danych skrypt wykonujący import może przerwać działanie.
  9. Klikamy Wykonaj, czekamy chwilę, aż serwer bazodanowy zrzuci i spakuje wszystkie rekordy wraz ze strukturą tabel. Następnie wybieramy miejsce zapisu skompresowanego pliku na swoim dysku.
  10. Przechodzimy do nowej bazy na docelowym serwerze przez phpMyAdmin, wybieramy odpowiednią bazę danych i klikamy Import.

Najczęstsze problemy:

  • Kodowanie znaków. Eksport i import powinien być wykonany z tym samym kodowaniem, np. UTF-8. Jest to niezależne od kodowania znaków w tabelach, np. ISO-8859-9.
  • Czasem zdarza się, że konfiguracja serwera MySQL nie pozwala na zbyt długie klucze indeksu. Wówczas musimy w starej bazie danych usunąć w wybranych tabelach długie pola z indeksu, np. VARCHAR(200) i utworzyć dla nich osobne indeksy. Następnie powtarzamy procedurę eksportu.
  • Import jest przerywany. Najczęstszą przyczyną są za długie instrukcje INSERT. Właśnie opcja Maksymalna długość utworzonego zapytania ustawiona na małą wartość, np. 300, pozwala nam uniknąć tego problemu przy imporcie. Domyślnie jest ustawione na 50000.

Zmiany konfiguracyjne w systemie sklepu oraz serwera
Zaraz po przeniesieniu bazy sklepu, należy zmienić dane konfiguracyjne w sklepie, tak aby system łączył się już z nowym hostem dla MySQL. Dzięki temu wszystkie zamówienia oraz inne informacje będą już trafiać do nowo skopiowanej bazy danych. Oczywiście jeżeli mamy zamówienia jedno po drugim nawet o trzeciej w nocy (tak, razem z Tobą o tym marzę :) wówczas nie ominie nas mozolna synchronizacja :/
Po tej czynności, należy zmienić pozostałe elementy, np. bazowa ścieżka do katalogu na serwerze FTP do folderu sklepu, konfiguracja PHP, czy uruchomienie skryptów w CronTab, to wszystko na nowym hostingu.

Przenosiny poczty / maili
Szerzej opisałem to w artykule Przeniesienie poczty na inny serwer (Thunderbird). W skrócie (moim zdaniem) łatwo to zrobić ręcznie przez program pocztowy Thunderbird. Dzięki opisanemu sposobowi, nie stracimy informacji jakie maile już zostały odpowiedziane, przeczytane, nadane etykiety itd…

Zmiana DNS
Najprostsza rzecz z całej listy todo :) Najlepiej robić tą czynność w nocy, z tego samego powodu co przenosiny bazy danych. Najpierw zdobywamy adresy DNS dla nowego serwera, znajdziecie je gdzieś na stronie usługodawcy, lub pytając go bezpośrednio. Następnie wpisujemy je w panelu firmy, gdzie mamy wykupioną/zaparkowaną domenę. Najczęściej są to dwa, kolejno ponumerowane adresy, np. ns1.kei.pl, ns2.kei.pl. Należy pamiętać, iż adresy DNS potrzebują czasu na “rozpropagowanie się” wśród innych serwerów. Trwa to najczęściej do kilku godzin. Czasem zmiany widać po godzinie, czasem dłużej.
Co przez ten czas się dzieje z klientami?
W trakcie aktualizacji serwerów DNS, część naszych klientów wybiórczo trafia na sklep na starym serwerze, a część na nowy. Zależy to od serwera DNS, przez który zostaną skierowani na naszą stronę. Niestety nie mamy na to wpływu, musimy cierpliwie czekać.

Synchronizacja poczty i bazy danych w trakcie aktualizacji DNS
W czasie, gdy serwery DNS będą aktualizować informacje o nowym adresie DNS serwera naszego hostingu, będziemy musieli na bieżąco sprawdzać stan naszych baz w obydwu sklepach oraz poczty. Ręcznie trzeba będzie przenosić dane. Jest to bardzo mozolna i mocno frapująca czynność, chyba że ktoś posiada skrypt do synchronizacji :) Oczywiście jeżeli tak jak wyżej opisałem, zaraz po eksporcie zmienimy dane konfiguracyjne sklepu dla bazy danych na nowe, wówczas część pracy nam odejdzie. Pozostanie tylko poczta.


Jeżeli wykonaliśmy już wszystkie powyższe czynności wraz z testami, czy aby na pewno “wszystko gra”, po jednym dniu (ze względu na DNSy) można już bezpiecznie usunąć na starym serwerze skrzynkę pocztową, bazę sklepową wraz plikami z FTP.
Przenosiny sklepu przysparzają dużo stresu ;) Chcemy cały czas mieć zapewnione działanie systemu, tak aby klienci nie odczuli wykonywanych prac. Sprawa jest znacznie łatwiejsza, gdy mamy poukładane co robić po kolei i wiemy na co uważać. Dlatego też pomyślałem, że powyższa lista przy zmianie serwera / przenosinach sklepu będzie dla Was pomocna :) Powodzenia!

Podobne tematy

Autor wpisu: Arkadiusz Krakiewicz

Programista i właściciel sklepu jednocześnie, dzięki temu rozumie potrzeby osób prowadzących sprzedaż w internecie. Od 2006 związany z eCommerce. Zaczynał jako freelancer tworząc sklepy oraz strony www. Aktualnie zajmuje się: programowanie w PHP, Symfony 2, Android, PrestaShop, osCommerce, OpenCart, WordPress.

14 komentarzy + Dodaj komentarz

  • Witam Panie Arkadiuszu. Bardzo rzetelnie zrobiony Tutorial. Sam do miesiąca czasu będę się “bawił” z przenoszeniem presty na nowy serwer i już na samą myśl robi mi się niedobrze ;)
    Pozdrawiam

    • Dziękuję za miłe słowa :)
      Życzę powodzenia przy przenosinach, chociaż wiem, że jest to uciążliwa praca :/

  • witam

    po 2 tygodniach nauczylem sie wszystko zrobic jak opisales do przeniesienia sklepu prestashop.
    czyli calosc na inny serwer , tylko zmiana serwera jest.
    i nie dziala jak powinien.
    jesli tak samo zrobie w sosunku do starego serwera dziala nalezycie.
    Pytanie czy czasem domena nie robi ten problem poniewaz domene mam wydelegowana
    ze starego serwera hosta na nowy
    Prosze o pomoc
    pozdrawiam
    Nino

  • Cześć, uważam za ciekawy wygląd Twojego bloga.

  • …powinienem Zachować w pamięci, bo intrygujące rzeczy poruszasz

  • Ciekawe… aż rozpoznam temat bardziej, bo zostałem zainspirowany…
    Ale wpierw idę na snowboard, muszę się zrelaksić!
    10/10. Naprawdę!

  • Przenosząc dzisiaj sklep na inny serwer miałem problem z wyświetlaniem produktów, przenosiło do strony 404. W takiej sytuacji polecam wyłączyć friendly urls i włączyć ponownie :)

  • w dzisiejszych czasach jest jeszcze prościej. Firmy hostingowe w swoich panelach do zarządzania np. “cpanel” mają osobne aplikacje/moduły które same instalują Tobie prestashop czy inny sklep np. na wordpresie w sposób bezkonfliktowy. Nie trzeba przesyłac plików na serwer, rozpakowywać tego i przechodzić całą instalację. Taką czystą instalkę robi się bardzo szybko. Wiem że na przykład w http://www.webd.pl/serwery – coś takiego mają ale to chyba powoli standard wśród serwerowni. W każdym razie strasznie to upraszcza czas : )

  • Dzięki za instrukcję, brakuję tylko gdzie zmienia się konfigurację sklepu na nowym serwerze;/

  • Przydatna i prosto opisana instrukcja. Jednak obejmuje wyłącznie przeniesienie sklepu na inny serwer. Natomiast jak przenieść sklep z WordPress-a MU pod inną domenę i na inny serwer. Dane przenoszą się z małymi problemami natomiast generalnym problemem są fotki produktów które po przeniesieniu po prostu się nie wyświetlają. Co dziwne nie ma ich nawet w zakładce MEDIA ( w panelu admina WordPress-a ) pomimo, że są w folderze UPLOADS na serwerze

  • Jeszcze mała uwaga do mojej prośby. Nowy serwis jest w domenie która ma zainstalowany certyfikat ssl ( na starym adresie certyfikatu nie było ). http://sklep.missmoon.pl

  • Witam. Przeniosła swój sklep na hosting OVH i pojawił się problem. Mianowicie użytkownikom ktorzy mają system Android na urządzeniach mobilnych wyskakuje komunikat że strona jest niebezpieczna. Dotyczy to tylko urządzeń mobilnych i systemu Android. Na laptopie wszystko jest ok. Na systemie Windows tez. OVH twierdzi ze certyfikat ssl jest. W czym może być problem?

  • Dodam że sklep.z prestashop.

Dodaj komentarz

Anti-Spam

O mnie

Arkadiusz Krakiewicz
Programista aplikacji webowych dla branży eCommerce. Jednocześnie jako właściciel sklepu zna od "podszewki" potrzeby osób prowadzących sprzedaż w internecie.
W swoich rozwiązaniach stawia na funkcjonalność i wydajność aplikacji pod kątem obsługi klienta.
[X]
Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików cookies.
Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.
Więcej w Obsługa sklepu
Mail przeniesienie
Przeniesienie poczty na inny serwer (Thunderbird)

Przy przenosinach strony, czy zmianie hostingu istnieje potrzeba przeniesienia, oprócz plików na FTP, całej poczty. Można to zrobić na kilka...

Zamknij