Deutsch

Website von Shared Hosting auf einen Linux-VPS umziehen

3 min
VPS/VDS-Hosting

Der Umzug einer PHP/MySQL-Website auf einen VPS Linux Infrawire bringt dedizierte Ressourcen und volle Kontrolle über den Stack. Der Schlüssel zu einer reibungslosen Migration: alles auf dem neuen Server vorbereiten, vor der DNS-Änderung testen und erst dann den Datenverkehr umschalten. Diese Anleitung folgt genau dieser Reihenfolge.

📋 Voraussetzungen

  • Ein Linux-VPS mit Ubuntu 24.04 oder Debian 12 (IP und Root-Passwort finden Sie in Ihrem Kundenbereich)
  • Zugriff auf das Shared Hosting (Dateimanager, FTP/SSH und ein Datenbank-Tool wie phpMyAdmin)
  • Zugriff auf die DNS-Zone Ihrer Domain
  • Eine Domain example.com und Ihre VPS-IP, unten als VPS_IP geschrieben

1. Die alte Website erfassen

Notieren Sie, was die Website braucht: PHP-Version, Erweiterungen, Datenbankname, Cron-Jobs, .htaccess-Regeln, SSL-Zertifikat und vor allem, wo Ihre E-Mails gehostet werden. Prüfen Sie im alten Control Panel die PHP-Version; bei SSH-Zugang:

Bash
php -v php -m | sort crontab -l

Senken Sie außerdem jetzt die TTL Ihrer DNS-Einträge auf 300 Sekunden, mindestens einen Tag vor der Migration, damit der finale Wechsel schnell geht.

2. Dateien und Datenbank exportieren

Vom VPS aus können Sie die Dateien direkt abholen, falls der alte Anbieter SSH bietet:

Bash
mkdir -p ~/migration && cd ~/migration rsync -avz OLDUSER@OLD_HOST:~/public_html/ ./site/

Ohne SSH laden Sie ein Archiv per FTP oder Dateimanager herunter und übertragen es mit scp. Exportieren Sie die Datenbank mit mysqldump (oder der Export-Schaltfläche von phpMyAdmin):

Bash
mysqldump --single-transaction -u DBUSER -p DBNAME > db.sql

3. Den Stack auf dem VPS vorbereiten

Bash
sudo 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 liefert PHP 8.3, Debian 12 PHP 8.2; der Socket heißt /run/php/php8.3-fpm.sock bzw. /run/php/php8.2-fpm.sock. Legen Sie die Nginx-Site in /etc/nginx/sites-available/example.com an:

Nginx
1server { 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}
Bash
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx

Nginx ignoriert .htaccess: Übertragen Sie die Rewrite-Regeln in location-Blöcke.

4. Dateien und Datenbank importieren

Bash
sudo 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

Passen Sie dann die Anwendungskonfiguration (z. B. wp-config.php) mit neuem Datenbanknamen, Benutzer und Passwort an. Der Host ist jetzt localhost.

5. Vor dem Wechsel testen

Lassen Sie auf Ihrem eigenen Rechner die Domain über die hosts-Datei auf den VPS zeigen (/etc/hosts unter Linux und macOS, C:\Windows\System32\drivers\etc\hosts unter Windows):

Bash
VPS_IP example.com www.example.com

Oder testen Sie, ohne etwas zu ändern:

Bash
curl -I --resolve example.com:80:VPS_IP http://example.com/

Rufen Sie die Seite auf, melden Sie sich an, senden Sie ein Formular ab und prüfen Sie die Logs in /var/log/nginx/error.log. Entfernen Sie danach die hosts-Zeile wieder.

6. DNS umstellen und E-Mail berücksichtigen

Frieren Sie Inhaltsänderungen auf der alten Seite ein, wiederholen Sie rsync sowie Datenbank-Export und -Import, um aktuelle Änderungen zu übernehmen, und setzen Sie dann den A-Eintrag auf VPS_IP und den AAAA-Eintrag auf die IPv6-Adresse des VPS. Sobald sich das DNS verbreitet hat, stellen Sie das Zertifikat aus:

Bash
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com

E-Mail: Ändern Sie nur die A/AAAA-Einträge. Lassen Sie MX, SPF und DKIM unverändert, wenn Ihre Postfächer beim alten Anbieter bleiben. Kündigen Sie das alte Hosting erst nach einigen problemlosen Tagen.

🔧 Fehlerbehebung

502 Bad Gateway
Der PHP-Socket in fastcgi_pass passt nicht zur installierten Version. Prüfen Sie mit ls /run/php/ und systemctl status php8.3-fpm.

„Error establishing a database connection“
Falsche Zugangsdaten oder falscher Host in der Konfigurationsdatei. Testen Sie mit mysql -u dbuser -p dbname.

403 oder leere Seite
Prüfen Sie Besitzer und Berechtigungen (chown -R www-data:www-data) sowie sudo tail -n 50 /var/log/nginx/error.log und die PHP-Logs.

Alte Seite erscheint nach dem Wechsel noch
Die DNS-Caches sind noch aktiv. Prüfen Sie mit dig +short example.com und warten Sie, bis die TTL abgelaufen ist.


✅ Ihre Website läuft jetzt auf einem eigenen VPS, ohne Ausfall umgezogen und mit sicherem Weg zurück.

Bleiben Sie über die neuesten Angebote, Rabatte und Sonderaktionen informiert.

Aktionen ansehen

Wir verwenden Cookies

Wir verwenden Analyse-Cookies, um Ihre Erfahrung auf unserer Website zu verbessern. Es werden keine Daten an Dritte verkauft. Mehr erfahren Sie in unserer Datenschutzerklärung.