Przeniesienie strony PHP/MySQL na VPS Linux Infrawire daje dedykowane zasoby i pełną kontrolę nad środowiskiem. Klucz do bezbolesnej migracji: przygotuj wszystko na nowym serwerze, przetestuj przed zmianą DNS i dopiero potem przełącz ruch. Ten poradnik trzyma się tej kolejności.
📋 Wymagania wstępne
- VPS z Linuksem (Ubuntu 24.04 lub Debian 12); IP i hasło roota znajdziesz w panelu klienta
- Dostęp do hostingu współdzielonego (menedżer plików, FTP/SSH i narzędzie do baz danych, np. phpMyAdmin)
- Dostęp do strefy DNS Twojej domeny
- Domena
example.comi adres IP VPS, poniżej zapisany jakoVPS_IP
1. Zinwentaryzuj starą stronę
Zapisz, czego potrzebuje strona: wersja PHP, rozszerzenia, nazwa bazy danych, zadania cron, reguły .htaccess, certyfikat SSL, a przede wszystkim miejsce, w którym działa Twoja poczta. W starym panelu sprawdź wersję PHP; jeśli masz dostęp SSH:
Bashphp -v php -m | sort crontab -l
Już teraz obniż też TTL rekordów DNS do 300 sekund, co najmniej dobę przed migracją, aby końcowe przełączenie było szybkie.
2. Wyeksportuj pliki i bazę danych
Z VPS możesz pobrać pliki bezpośrednio, jeśli stary hosting oferuje SSH:
Bashmkdir -p ~/migration && cd ~/migration rsync -avz OLDUSER@OLD_HOST:~/public_html/ ./site/
Bez SSH pobierz archiwum przez FTP lub menedżer plików i wyślij je poleceniem scp. Bazę wyeksportuj przez mysqldump (lub przycisk Eksportuj w phpMyAdmin):
Bashmysqldump --single-transaction -u DBUSER -p DBNAME > db.sql
3. Przygotuj środowisko na VPS
Bashsudo apt update sudo apt install -y nginx mariadb-server php-fpm php-mysql php-xml php-mbstring php-curl php-zip php-gd sudo mysql_secure_installation php -v
Ubuntu 24.04 zawiera PHP 8.3, a Debian 12 PHP 8.2; gniazdo to /run/php/php8.3-fpm.sock lub /run/php/php8.2-fpm.sock. Utwórz witrynę Nginx w /etc/nginx/sites-available/example.com:
Nginx1server { 2 listen 80; 3 listen [::]:80; 4 server_name example.com www.example.com; 5 root /var/www/example.com; 6 index index.php index.html; 7 8 location / { 9 try_files $uri $uri/ /index.php?$args; 10 } 11 12 location ~ \.php$ { 13 include snippets/fastcgi-php.conf; 14 fastcgi_pass unix:/run/php/php8.3-fpm.sock; 15 } 16}
Bashsudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
Nginx ignoruje .htaccess: przepisz jego reguły przekierowań na bloki location.
4. Zaimportuj pliki i bazę danych
Bashsudo mkdir -p /var/www/example.com sudo cp -a ~/migration/site/. /var/www/example.com/ sudo chown -R www-data:www-data /var/www/example.com sudo mysql -e "CREATE DATABASE dbname CHARACTER SET utf8mb4;" sudo mysql -e "CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD';" sudo mysql -e "GRANT ALL ON dbname.* TO 'dbuser'@'localhost'; FLUSH PRIVILEGES;" sudo mysql dbname < ~/migration/db.sql
Następnie zmień konfigurację aplikacji (np. wp-config.php), podając nową nazwę bazy, użytkownika i hasło. Host to teraz localhost.
5. Przetestuj przed przełączeniem
Na własnym komputerze skieruj domenę na VPS, edytując plik hosts (/etc/hosts w Linuksie i macOS, C:\Windows\System32\drivers\etc\hosts w Windows):
BashVPS_IP example.com www.example.com
Albo przetestuj bez zmieniania czegokolwiek:
Bashcurl -I --resolve example.com:80:VPS_IP http://example.com/
Przejrzyj stronę, zaloguj się, wyślij formularz i sprawdź logi w /var/log/nginx/error.log. Potem usuń linię z pliku hosts.
6. Przełącz DNS i zadbaj o pocztę
Zamroź zmiany treści na starej stronie, powtórz rsync oraz eksport i import bazy, aby przenieść ostatnie zmiany, a następnie zmień rekord A na VPS_IP i rekord AAAA na adres IPv6 VPS. Gdy DNS się rozpropaguje, wystaw certyfikat:
Bashsudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com
Poczta: zmieniaj tylko rekordy A/AAAA. Rekordów MX, SPF i DKIM nie ruszaj, jeśli skrzynki zostają u dotychczasowego dostawcy. Starego hostingu nie wypowiadaj przed upływem kilku dni bez problemów.
🔧 Rozwiązywanie problemów
502 Bad Gateway
Gniazdo PHP w fastcgi_pass nie zgadza się z zainstalowaną wersją. Sprawdź ls /run/php/ i systemctl status php8.3-fpm.
„Error establishing a database connection”
Błędne dane logowania lub host w pliku konfiguracji. Przetestuj mysql -u dbuser -p dbname.
403 lub pusta strona
Sprawdź właściciela i uprawnienia (chown -R www-data:www-data) oraz sudo tail -n 50 /var/log/nginx/error.log i logi PHP.
Stara strona nadal się wyświetla po przełączeniu
Cache DNS są jeszcze aktywne. Sprawdź dig +short example.com i poczekaj, aż TTL wygaśnie.
✅ Twoja strona działa teraz na własnym VPS, przeniesiona bez przestoju i z bezpieczną drogą powrotu.