Moving Menu

Jak przenieść sklep internetowy bez straty klienta - migracja PrestaShop.

corner Jak przenieść sklep internetowy bez straty klienta - migracja PrestaShop.
Przenoszenie aplikacji zawsze związane jest z ryzykiem. W przypadku gdy dzięki aplikacji zarabiamy dochodzi dodatkowy stres. Jednak od czasu do czasu istnieje potrzeba przeniesienia naszego sklepu wykonanego na oprogramowaniu PrestaShop pod nową domenę czy też na inny serwer. Jak więc wykonać taką operację tak, aby nie stracić choćby jednego klienta? W jaki sposób zmienić domenę sklepu tak, by nie stracić swojej pozycji w wynikach wyszukiwania Google?

W jednym z ostatnich wpisów pokazałem jakie trudności mogą nas spotkać przy migracji WordPressa. Głównym problemem przy migrowaniu tego oprogramowania były zapisane na stałe ścieżki w bazie SQL. W przypadku sklepów opartych o PrestaShop, problem jest właściwie identyczny. Tutaj również, cała migracja sprowadza się do zmienienia ścieżek w skrypcie. Oczywiście mówimy o migracji ze zmianą domeny. Wpis ten jednak będzie miał zastosowanie do wszystkich wariantów przenoszenia sklepów wykonanych w PrestaShop, jeśli nie zmieniasz domeny to po prostu będziesz mógł pominąć pewne kroki. Do dzieła...  

Założenia przy migrowaniu

Musimy się zastanowić na czym nam tak naprawdę zależy. W mojej opinii dla sklepu internetowego najważniejsze jest to, aby nie stracić żadnego klienta. W taki właśnie sposób zostanie przedstawiony sposób migracji. Będzie się ona składała z kilku etapów:

  • Kopiowanie plików
  • Kopiowanie bazy
  • Edycja pliku konfiguracyjnego
  • Zmiana domeny zapisanej w bazie
  • Ustawienie przekierowania ze starej domeny na nową, tak aby użytkownicy wchodzący pod stary adres trafili do naszego sklepu, oraz wskazanie wyszukiwarką internetowym (Google, Bing), że nasza strona znajduje się pod innym adresem.

Na potrzeby poradnika przeniosę sklep zainstalowany pod adresem http://demo9.kylos.pl/sklep1 tak, aby działał na zupełnie innym serwerze pod domeną http://demo10.kylos.pl/ Jak widać jest to przeniesieni sklepu na inny serwer wraz ze zmianą domeny. UWAGA! W przypadku gdy dokonujemy zmiany serwera bez zmiany domeny musimy uwzględnić czas jaki będzie potrzebny na dokonanie się propagacji wpisów DNS. W takiej sytuacji wystarczy po prostu pozostawić dwie aktywne wersje strony jedną na starym serwerze i jedną na nowym. Następnie dokonujemy zmiany DNSów w panelu rejestratora domeny i czekamy 24h, aż nastąpi pełna propagacja. W tym czasie część klientów może trafić na starą stronę a część na nową. Zależne jest to od drogi jaką muszą pokonać pakiety wysłane z ich komputera. Występuje w takiej sytuacji niedogodność związana z tym, że zamówienia mogą się pojawić w dwóch różnych miejscach, nie mniej jest to chyba niewielka cena za pewność, że wszystkie zamówienia do nas trafią. Pozostaje jeszcze kwestia jak się dostać do konkretnej instalacji PrestaShop skoro działają na dwóch różnych serwerach, ale pod jedną domeną. Swojej lokalizacji nie zmienimy tak, żeby trafić na inny serwer, ale możemy wskazać systemowi operacyjnemu, na który konkretnie serwer ma kierować dana domena. Opis jak to zrobić znajduje się w Bazie Wiedzy Kylos.pl - Lokalne wskazanie domeny na inny adres IP poprzez plik "hosts".  

Kopiowanie plików na nowy serwer

Zadanie jest stosunkowo proste. Pliki możemy skopiować korzystając z dowolnego klienta FTP po zalogowaniu do naszego starego serwera. Ja skorzystam z programu WinSCP. Najpierw więc logujemy się przez FTP do starego serwera i pobieramy wszystkie pliki naszej instalacji do dowolnego folderu w na naszym komputerze. W tym celu zaznaczamy wszystkie pliki naszej istalacji PrestShop i przeciągamy je do lokalnego folderu. kop1 Tak przygotowane pliki trzeba umieścić na nowym serwerze. Klientem FTP należy połączyć się z nowy serwerem, przejść do folderu, na który wskazuje nowa domena, zaznaczyć wszystkie pliki, które skopiowaliśmy na dysk i umieścić je bezpośrednio w tym folderze. kop2 Po pomyślnym umieszczeniu plików na serwerze przejdziemy do wykonania kopi bazy danych.  

Przeniesienie bazy danych

W tym celu najprościej wykonać zrzut naszej bazy z poziomu phpMyAdmin. Na serwerach Kylos.pl dostęp do phpMyAdmin uzyskasz z poziomu cPanelu. Po zalogowaniu wybieramy z rozwijanej listy po lewej stronie naszą obecną bazę i przechodzimy do zakładki „Eksportuj”. Wszystkie opcje zostawiamy domyślne i klikamy „Wykonaj”.
Plik z rozszerzeniem *.sql powinien zostać pobrany na dysk. baz1 Teraz należy umieścić bazę na nowym serwerze. To również zrobimy z poziomu phpMyAdmina korzystając z opcji Importuj. Najpierw jednak musimy utworzyć nową bazę danych dla naszej instalacji wraz z użytkownikiem. W przypadku hostingu w Kylos.pl można to łatwo wykonać w cPanelu. Jeśli nie wiesz jak dodać nową bazę na swoim serwerze skontaktuj się z administratorem tego serwera. Następnie należy przejść do utworzonej bazy dla naszej migrowanej instalacji PrestaShop i wybrać zakładkę „Importuj”. Wybieramy nasz plik z rozszerzeniem *.sql przy pomocy  „Wybierz plik”, pozostawiamy wszystkie inne opcje jako domyślne i klikamy „Wykonaj” baz2 Import powinien zakończyć się sukcesem. Wtedy mamy już nasza bazę na nowym serwerze.  

Zmiana w plikach konfiguracyjnych i zmiana domeny w bazie

Musimy teraz zmienić konfiguracje aplikacji tak, aby mogła się łączyć z bazą danych na nowym serwerze. W tym celu należy dokonać edycji pliku settings.inc.php znajdującego się w folderze /config naszej instalacji. W moim przypadku jest to ścieżka /public_html/config/settings.inc.php Edycji można dokonać lokalnie i dopiero umieścić plik na serwerze lub bezpośrednio na serwerze korzystając z opcji zdalnej edycji. konf1 Po uruchomieniu edycji otworzy nam się Notatnik systemowy z plikiem, w którym musimy ustawić poprawne nazwy hosta, użytkownika bazy, nazwę bazy oraz hasło do tej bazy. [php] define('_DB_SERVER_', 'adres_serwera'); // często jest to localhost define('_DB_NAME_', 'nazwa_bazy'); define('_DB_USER_', 'uzytkownik'); define('_DB_PASSWD_', 'haslo'); define('_DB_PREFIX_', 'ps_'); define('_MYSQL_ENGINE_', 'InnoDB'); define('_PS_CACHING_SYSTEM_', 'CacheMemcache'); define('_PS_CACHE_ENABLED_', '0'); define('_MEDIA_SERVER_1_', ''); define('_MEDIA_SERVER_2_', ''); define('_MEDIA_SERVER_3_', ''); define('_COOKIE_KEY_', 'e0x9uavnchso9muzn9uffj0datexawplojrb3xpz7r7mktoh1xmgqwn6'); define('_COOKIE_IV_', 'ls6adhmh'); define('_PS_CREATION_DATE_', '2014-07-02'); if (!defined('_PS_VERSION_')) define('_PS_VERSION_', '1.6.0.8'); define('_RIJNDAEL_KEY_', 'UpwVZU2KkVIZOtwAUuc7OYzfNw7Lp7cA'); define('_RIJNDAEL_IV_', '2ZmtSBdSmhQnEdmAlLx6rQ=='); [/php] Po uzupełnieniu pliku zapisujemy zmiany. Jeśli podaliśmy poprawne dane do bazy instalacja powinna prawidłowo się uruchomić czytając informacje ze skopiowanej bazy. Niestety kiedy chcemy wejść pod nasz nowy adres i sprawdzić czy sklep działa poprawnie, zostajemy od razu przekierowani na stary adres. W moim przypadku po wpisaniu demo10.kylos.pl jestem automatycznie kierowany na demo9.kylos.pl/sklep1   Dzieje się tak, ze względu na zapisana w bazie danych domenę. Musimy więc dokonać edycji w jeszcze jednym miejscu. Ponownie więc przy pomocy znanego nam już phpMyAdmina dostajemy się do bazy na nowym serwerze. Otwieramy naszą nową bazę danych, wyszukujemy tabelę ps_shop_url i znajdujemy w niej rekord, który należy wyedytować. baz3 Interesują nas pola:

  • domain - gdzie podajemy naszą nową domenę
  • domain_ssl - gdzie podajemy domene wykorzystywaną przy połączeniach szyfrowanych SSL, zwykle będzie taka sama jak domena w polu domain, jednak nic nie stoi na przeszkodzie by była to przykładowo subdomena w postaci ssl.domena.tld
  • physical_uri - wskazuje katalog, w którym znajduje się nasz sklep, jeśli sklep znajduje się bezpośrednio pod domeną to w to pole wpisujemy / wtedy sklep będzie dostępny przykładowo pod domena.tld. Jeśli chcemy, żeby sklep był w folderze sklep czyli adres do niego to domena.tld/sklep/ wtedy w tym polu wpisujemy /sklep/

Dokonujemy więc zmiany, w moim przypadku domain i domain_ssl ustawiłem na demo10.kylos.pl zaś physical_uri wskazałem jako / ponieważ chcę, żeby sklep był dostępny bezpośrednio z folderu, na który wskazuje domena. Zmiany należy zatwierdzić naciskając "Wykonaj". Teraz po wpisaniu naszego nowego adresu, jeśli wszystko zostało wykonane poprawnie, pozostajemy na naszej przeniesionej instalacji PrestaShop. Pozostało nam już tylko zapewnić, aby trafili tutaj użytkownicy, którzy weszliby na naszą starą stronę.  

Dodanie przekierowania ze starej strony na nową

Aby wszyscy klienci trafili na naszą nową stronę, dodajmy jeszcze przekierowanie z poprzedniego adresu na nowy adres. W przypadku serwerów hostingowych Kylos.pl takie przekierowanie możesz ustanowić z poziomu cPanelu. Po zalogowaniu do cPanelu należy przejść do Domeny -> Zarządzaj przekierowaniami. Wybieramy stały typ przekierowania, wskazujemy domenę, której ma dotyczyć i podajemy folder, w którym zainstalowany jest sklep jeśli jest to konieczne. Następnie wskazujemy adres na jaki ma następować przekierowanie czyli podajemy tutaj naszą nową domenę. Chcąc zapewnić, że przekierowanie nastąpi ze wszystkich wariantów adresu wybieramy opcje "Przekierowuj dla adresów z lub bez www" oraz zaznaczamy "Przekierowanie ze znakiem uniwersalnym" redPo wypełnieniu pól naciskamy "Dodaj" i wchodzimy na stary adres. Jeśli wszystko wykonaliśmy poprawnie, zostaniemy przekierowani na nowy adres. Przekierowanie domeny w ten sposób ma również znaczący wpływ na pozycje w google. Przekierowanie stałe typu 301 przekazuje moc domeny na nową domenę. W związku z tym nie stracimy pozycji w wynikach wyszukiwania wypracowanej już pod starą domeną. Jeśli nie ma możliwości wykonania przekierowania z poziomu panelu serwera to można je wykonać bezpośrednio w pliku konfiguracyjnym Apache  - .htaccess czy też w samej aplikacji z wykorzystaniem PHP. Więcej informacji znaleźć można choćby na Wikipedii - Przekierowanie URL  

Podsumowanie

Przenieśliśmy wszystkie pliki naszego sklepu, przenieśliśmy również bazę danych, użytkowników i wyszukiwarki skierowaliśmy na nasz nowy adres. Cel został więc osiągnięty. Jak wspomniałem wcześniej, poradnik ten można dopasować do wielu sytuacji. Jeśli przykładowo chcemy tylko zmienić ścieżkę do naszego sklepu z domena.tld na domena.tld/sklep/ to musimy skorzystać z opisów dotyczących zmiany w bazie SQL i przenieść pliki do danego podfolderu. Cały poradnik został napisany w sposób ogólny tak, by można było z niego skorzystać niezależnie od konkretnego problemu. Nie ma dwóch identycznych sklepów na PrestaShop i nie ma również dwóch identycznych migracji. W przypadku problemów lub wątpliwości zapraszam do zadawania pytań w komentarzach. Postaram się w miarę moich możliwości wyjaśnić niezrozumiałe aspekty czy pomóc w rozwiązaniu problemów, które oczywiście mogą się pojawić.

 

Darmowa pomoc w przeniesieniu sklepu do Kylos.pl

Przy wykupieniu usługi hostingowej przygotowaliśmy możliwość darmowego przeniesienia sklepu przez administratorów Kylos.pl - szczegóły są opisane na naszej stronie: www.kylos.pl/migracja

 

comments powered by Disqus

Powiązane

photo corner
Różnice w wersjach PHP

W dzisiejszym wpisie chciałbym krótko przybliżyć Wam język PHP, oraz pokazać najważniejsze zmiany, jakie w ostatnich latach zostały w nim wprowadzone.

Czytaj więcej
photo corner
Zen Coding - HTML/CSS z prędkością światła (cz.I)

Wydajność jest dla kodera HTML/CSS sprawą kluczową. Kiedy opanujemy już składnię i podstawowe techniki oraz wdrożymy pierwsze projekty, czas kodowania nabiera podstawowego znaczenia. Z pomocą przychodzą nam rozmaite narzędzia. Dla mnie, najważniejszym jest Zen Coding, które w niezwykły sposób pozwala mi pisać kod kilkakrotnie szybciej.

Czytaj więcej
photo corner
Zen Coding - HTML/CSS z prędkością światła (cz.II)

W pierwszej części artykułu przedstawiłem Zen Coding jako niezwykłe ułatwienie w pracy kodera. Dowiedzieliśmy się, m.in. jak za pomocą jednej linijki pseudokodu napisać cały dokument HTML. Dziś przyjrzyjmy się rozwiązaniom, które przyspieszą naszą pracę z CSS. Zapraszam do lektury!

Czytaj więcej