Przejdź do treści

Przenoszenie strony na VPS: poradnik krok po kroku

Aktualizacja: 5 min czytaniaZespół DNSPeek

Aby przenieść stronę na VPS, najpierw przygotuj serwer: aktualizacje, klucze SSH, zaporę sieciową i ten sam stos webowy, na którym strona działa dziś. Skopiuj pliki i bazę danych, skonfiguruj wirtualny host dla swojej domeny i przetestuj stronę na IP VPS pod prawdziwą domeną przed zmianą DNS. Przełącz przy krótkim TTL, wystaw certyfikat, a pocztę trzymaj u osobnego dostawcy, a nie na VPS.

Co się zmienia, gdy opuszczasz hosting współdzielony

Na hostingu współdzielonym dostawca prowadzi serwer WWW, PHP, bazę danych, pocztę, kopie zapasowe i aktualizacje bezpieczeństwa. Na niezarządzanym VPS to wszystko należy teraz do Ciebie. Zaletą jest kontrola i przewidywalne zasoby; ceną to, że nic nie jest skonfigurowane, dopóki sam tego nie zrobisz. Zaplanuj przeprowadzkę jako dwa projekty: zbuduj serwer, a potem przenieś na niego stronę.

Hosting współdzielony w porównaniu z niezarządzanym VPS
ZadanieHosting współdzielonyNiezarządzany VPS
Aktualizacje bezpieczeństwaHostingTy (lub aktualizacje automatyczne)
Serwer WWW, PHP, baza danychZainstalowane fabrycznieInstalujesz je i dostrajasz sam
Hosting pocztyZwykle w cenieLepiej u osobnego dostawcy
Kopie zapasoweCzęsto w cenieKonfigurujesz je sam, najlepiej poza serwerem
CertyfikatyAutomatycznieCertbot lub podobny klient ACME

Przygotuj serwer

Zacznij od wspieranego wydania Linuksa. Poniższe polecenia dotyczą Ubuntu lub Debiana; w innych dystrybucjach dostosuj nazwy pakietów.

Terminal (na VPS)
# Updates and a non-root user with sudo
apt update && apt upgrade -y
adduser deploy && usermod -aG sudo deploy

# Firewall: SSH, HTTP and HTTPS only
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

# Automatic security updates
apt install -y unattended-upgrades

Zaloguj się kluczem SSH, a potem wyłącz logowanie hasłem przez SSH. Zainstaluj stos, którego potrzebuje strona, np. nginx lub Apache, PHP-FPM w tej samej wersji i z tymi samymi rozszerzeniami co na starym hostingu oraz MySQL lub MariaDB. Ta sama wersja PHP pozwala uniknąć niespodzianek; zaktualizuj ją później w osobnym kroku.

Przeniesienie strony krok po kroku

  1. Krok 1: Obniż TTL

    Dzień przed przełączeniem ustaw dla rekordów A TTL 300 sekund. Obecną wartość sprawdź narzędziem sprawdzanie TTL.

  2. Krok 2: Zabezpiecz VPS i zainstaluj stos

    Zainstaluj aktualizacje, utwórz użytkownika z sudo, włącz klucze SSH i zaporę sieciową, a potem zainstaluj wersje serwera WWW, PHP i bazy danych, których potrzebuje strona.

  3. Krok 3: Skopiuj pliki

    Skopiuj stronę poleceniem rsync -avz przez SSH albo pobierz archiwum ze starego hostingu i prześlij je na VPS. Ustaw właściciela na użytkownika serwera WWW.

  4. Krok 4: Zaimportuj bazę danych

    Wyeksportuj ją na starym hostingu, utwórz bazę danych i użytkownika na VPS, zaimportuj zrzut i zaktualizuj konfigurację aplikacji o nowe dane dostępowe.

  5. Krok 5: Skonfiguruj wirtualny host

    Dodaj blok server dla domeny i www, przepisz reguły .htaccess i przeładuj serwer WWW.

  6. Krok 6: Przetestuj na IP VPS przed zmianą DNS

    Utwórz link do podglądu z domeną i IP VPS i do czasu instalacji certyfikatu używaj trybu „Tylko HTTP” lub „Pomiń weryfikację”. Przeklikaj stronę, wyślij formularze, zaloguj się.

  7. Krok 7: Uruchom raport QA

    Przeskanuj podgląd raportem QA, aby wychwycić domyślne strony serwera WWW, błędy 502 z PHP-FPM, brakujące reguły rewrite i błędy PHP.

  8. Krok 8: Przełącz DNS i wystaw certyfikat

    Wykonaj końcową synchronizację plików i bazy danych, skieruj rekordy A na VPS, a potem wystaw certyfikat i obserwuj propagację narzędziem sprawdzanie propagacji DNS.

Skonfiguruj wirtualny host

Serwer WWW wybiera stronę na podstawie nazwy domeny w żądaniu. Skonfiguruj blok server zarówno dla example.com, jak i www.example.com:

/etc/nginx/sites-available/example.com
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}

Jeśli na starym hostingu strona korzystała z reguł .htaccess, przepisz je dla nginx: przyjazne adresy URL, przekierowania i ograniczenia dostępu nie przenoszą się same. Dostosuj ścieżkę gniazda PHP-FPM do zainstalowanej wersji. Testuj konfigurację poleceniem nginx -t przed każdym przeładowaniem i sprawdź ustawienia puli PHP-FPM: domyślna liczba procesów roboczych jest mała, a ruchliwa strona, której zabraknie procesów, odpowiada błędami 502 lub 504.

HTTPS przed przełączeniem

Zwykła weryfikacja HTTP w Let’s Encrypt działa dopiero wtedy, gdy domena wskazuje VPS. Masz trzy możliwości: wystawić certyfikat zaraz po przełączeniu (kilka minut na zwykłym HTTP lub z certyfikatem samopodpisanym), użyć weryfikacji DNS, która działa przed przełączeniem, jeśli Twój dostawca DNS ma API, albo skopiować istniejący certyfikat ze starego hostingu.

Do testów świeży VPS bez żadnego certyfikatu działa z podglądem DNSPeek w trybie Tylko HTTP: odwiedzający nadal otwierają podgląd przez HTTPS, a DNSPeek łączy się z serwerem zwykłym HTTP. Najpierw skonfiguruj aplikację tak, by ufała HTTPS proxy, inaczej przekierowanie wymuszające HTTPS utworzy pętlę. Ustawienia PHP i nginx opisuje dokumentacja: Serwer bez SSL.

Poczta: nie przenoś jej na VPS

Jeśli stary hosting współdzielony obsługiwał też Twoją pocztę, przeprowadzka to dobry moment, by je rozdzielić. Dobre utrzymanie serwera poczty (filtrowanie spamu, reputacja, DKIM, listy blokad) to osobna praca, a wielu dostawców chmury domyślnie blokuje wychodzący port 25. Przenieś skrzynki do osobnego dostawcy poczty, zaktualizuj MX, SPF, DKIM i DMARC, a e-maile transakcyjne ze strony wysyłaj przez uwierzytelnianą usługę SMTP. Zweryfikuj rekordy narzędziami sprawdzanie rekordów MX, sprawdzanie rekordu SPF i sprawdzanie rekordu DMARC.

Po przełączeniu

  • Wystaw lub zweryfikuj certyfikat i sprawdź go narzędziem sprawdzanie SSL.
  • Skonfiguruj kopie zapasowe przechowywane poza serwerem: zrzuty bazy danych i pliki, w magazynie obiektowym lub na innej maszynie, i przetestuj odtwarzanie.
  • Dodaj podstawowy monitoring: kontrolę dostępności, miejsca na dysku i ważności certyfikatu.
  • Odtwórz zadania cron ze starego hostingu.
  • Przejdź przez checklistę po przeprowadzce.

Checklista migracji na VPS

VPS

  • Aktualizacje zainstalowane, aktualizacje automatyczne włączone
  • Użytkownik z sudo zamiast root, klucze SSH, logowanie hasłem wyłączone
  • Zapora sieciowa przepuszcza tylko SSH, HTTP i HTTPS
  • Ta sama wersja PHP i rozszerzenia co na starym hostingu
  • Pliki skopiowane, właściciel i uprawnienia ustawione
  • Baza danych zaimportowana, konfiguracja aplikacji zaktualizowana
  • Wirtualny host dla domeny i www; reguły rewrite przepisane
  • Strona przetestowana na IP VPS za pomocą linku do podglądu
  • Raport QA bez krytycznych uwag
  • Poczta przeniesiona do osobnego dostawcy; MX, SPF, DKIM, DMARC ustawione
  • Końcowa synchronizacja, DNS przełączony, certyfikat wystawiony
  • Kopie zapasowe poza serwerem i przetestowane odtwarzanie
  • Monitoring dostępności i dysku skonfigurowany

Najczęstsze pytania

Czy VPS jest szybszy niż hosting współdzielony?

Często tak, ponieważ procesor i pamięć są zarezerwowane dla Ciebie, a nie dzielone z wieloma innymi stronami. Szybkość nadal zależy od konfiguracji: ustawienia PHP-FPM, cache i baza danych mają takie samo znaczenie jak sprzęt.

Czy mogę uzyskać certyfikat SSL na VPS przed zmianą DNS?

Tak, przez weryfikację DNS, jeśli Twój dostawca DNS ją obsługuje, lub kopiując istniejący certyfikat ze starego hostingu. Standardowa weryfikacja HTTP działa dopiero wtedy, gdy domena wskazuje VPS.

Jak przetestować stronę na VPS, zanim skieruję na niego domenę?

Wywołaj stronę z IP VPS pod jej prawdziwą domeną. Link do podglądu robi to w każdej przeglądarce i można go udostępnić; wpis w pliku hosts robi to na Twoim komputerze. Otwarcie samego IP zwykle pokazuje domyślną stronę serwera WWW.

Czy hostować pocztę na swoim VPS?

Zwykle nie. Serwery poczty wymagają stałej opieki w zakresie filtrowania spamu, reputacji i list blokad, a wielu dostawców chmury blokuje wychodzący port 25. Osobny dostawca poczty plus usługa SMTP dla strony to rozwiązanie prostsze i bardziej niezawodne.

Jaki jest najczęstszy błąd przy przeprowadzce na VPS?

Zapomnienie o pracy, którą stary hosting wykonywał po cichu: kopiach zapasowych, aktualizacjach bezpieczeństwa, poczcie i zadaniach cron. Przed przeprowadzką spisz wszystko, co zapewniał stary hosting, i zdecyduj, kto zajmie się każdą częścią na VPS.

Moving a site? Use the migration checklist

Every step from lowering the TTL to checking email after the switch, on one printable page. With a free account you keep your preview links in one place and run a QA report of the site on the new server.

Sprawdź nowy serwer przed przełączeniem

DNSPeek daje Ci jeden link HTTPS, który pokazuje Twoją stronę z nowego serwera, podczas gdy DNS nadal wskazuje stary. Otwórz go na dowolnym urządzeniu, udostępnij zespołowi lub klientowi i uruchom skanowanie QA na tym samym linku.

Utwórz darmowy link do podglądu