Skip to content

Kapitel 19: Webseite veröffentlichen

19.1 Domain und Server kaufen

Was wird benötigt, um eine Webseite zu veröffentlichen?

  1. Domain (Webadresse, z.B. www.meine-webseite.de)
  2. Server (Computer, der Webseiten im Internet speichert)
  3. SSL-Zertifikat (für HTTPS-Verschlüsselung)

Domain kaufen#

bash
# Beliebte Domain-Registrare in Deutschland:
# - IONOS: https://www.ionos.de/
# - Strato: https://www.strato.de/
# - 1&1: https://www.1und1.de/
# - GoDaddy: https://www.godaddy.com/

# Schritte:
# 1. Domain-Suchtool verwenden (z.B. "meine-webseite.de" prüfen)
# 2. Wenn verfügbar: Kaufen
# 3. Account erstellen und bezahlen
# 4. Domain ist jetzt Ihr!

Server kaufen (Hosting)

Shared Hosting (für kleine Webseiten) | VPS (Virtual Private Server, für größere Projekte) | Cloud-Hosting (skalierbar)

AnbieterTypPreisBeschreibung
IONOSShared/VPSGünstigSehr beliebt in Deutschland
StratoShared/VPSGünstigAuch sehr beliebt
HetznerVPS/CloudMittelHochleistungs-Server
DigitalOceanVPS (Droplets)GünstigSehr entwicklerfreundlich
AWS (Amazon)CloudVariabelFür große Anwendungen

Empfehlung für PHP-Anfänger:

  1. IONOS oder Strato Shared Hosting (billig, einfach)
  2. DigitalOcean (wenn Sie VPS lernen möchten)

19.2 Server-Konfiguration

Shared Hosting (einfach, meist automatisch)

  1. Login in Ihr Hosting-Control-Panel (z.B. IONOS/Strato Control-Panel)
  2. PHP-Version auswählen (PHP 8.x empfohlen)
  3. Datenbank erstellen (MySQL/MariaDB)
    • Datenbankname
    • Benutzername
    • Passwort
    • Host (meist localhost)
  4. FTP-Zugang einrichten (für Datei-Upload)

VPS (Virtual Private Server) – Linux (Ubuntu) Beispiel

1. SSH-Verbindung herstellen

bash
# SSH-Verbindung zum Server
ssh root@ihre-server-ip

# Beispiel:
ssh root@192.0.2.123

2. Software installieren (LAMP-Stack)

bash
# 1. System aktualisieren
sudo apt update && sudo apt upgrade -y

# 2. Apache Webserver installieren
sudo apt install apache2 -y

# 3. MySQL installieren
sudo apt install mysql-server -y

# 4. PHP installieren (mit MySQL-Unterstützung)
sudo apt install php libapache2-mod-php php-mysql -y

# 5. PHP-Erweiterungen installieren (häufig benötigt)
sudo apt install php-curl php-json php-cgi php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y

# 6. Apache neustarten
sudo systemctl restart apache2

3. MySQL absichern und Datenbank erstellen

bash
# MySQL absichern
sudo mysql_secure_installation

# MySQL-Benutzer erstellen und Datenbank anlegen
sudo mysql -u root -p

# In MySQL-Konsole:
CREATE DATABASE meine_webseite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mein_benutzer'@'localhost' IDENTIFIED BY 'starkes_passwort';
GRANT ALL PRIVILEGES ON meine_webseite.* TO 'mein_benutzer'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4. Firewall konfigurieren

bash
# UFW (Uncomplicated Firewall) aktivieren
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable

5. SSL-Zertifikat installieren (Let's Encrypt)

bash
# Certbot installieren
sudo apt install certbot python3-certbot-apache -y

# SSL-Zertifikat erstellen
sudo certbot --apache -d www.meine-domain.de -d meine-domain.de

# Automatische Erneuerung testen
sudo certbot renew --dry-run

19.3 Code-Upload und Datenbank-Import

Code-Upload (FTP/SFTP)

FTP-Clients:

  • FileZilla (kostenlos, Open Source)
  • WinSCP (nur Windows)
  • Cyberduck (macOS, Windows)

FileZilla verwenden:

  1. FileZilla öffnen
  2. Verbindungsdaten eingeben:
    • Host: ihre-server-ip oder ftp.ihre-domain.de
    • Benutzername: ihr-ftp-benutzer
    • Passwort: ihr-ftp-passwort
    • Port: 21 (FTP) oder 22 (SFTP)
  3. Verbinden
  4. Dateien hochladen:
    • Lokal: Ihre PHP-Dateien auf Ihrem Computer
    • Server: /var/www/html/ (Standard Apache-Pfad unter Linux)
    • Oder: /var/www/ihre-domain/public_html/ (bei einigen Hostern)
  5. Dateien übertragen (Drag & Drop)

Code-Upload (SCP - Secure Copy, für VPS)

bash
# Dateien vom lokalen Computer auf den Server hochladen
scp -r /pfad/zu/ihren/php-dateien root@server-ip:/var/www/html/

# Beispiel:
scp -r ./meine-webseite root@192.0.2.123:/var/www/html/

Code-Upload (Git - für Versionskontrolle)

bash
# Auf dem Server:
cd /var/www/html/
git clone https://github.com/ihr-benutzername/ihr-repository.git .

# Oder: Falls bereits geklont, aktualisieren
git pull origin main

Datenbank-Import (phpMyAdmin)

  1. phpMyAdmin auf dem Server öffnen (z.B. http://ihre-domain.de/phpmyadmin)
  2. Einloggen (mit MySQL-Benutzerdaten)
  3. Datenbank auswählen (die, die Sie auf dem Server erstellt haben)
  4. "Import" anklicken
  5. Datei auswählen (Ihre lokale .sql-Datei)
  6. "Ausführen" anklicken

Datenbank-Import (Kommandozeile)

bash
# Methode 1: Direkter Import
mysql -u mein_benutzer -p meine_datenbank_name < /pfad/zu/ihrer/sql-datei.sql

# Methode 2: Innerhalb der MySQL-Konsole
mysql -u mein_benutzer -p
USE meine_datenbank_name;
SOURCE /pfad/zu/ihrer/sql-datei.sql;
EXIT;

Wichtig: Konfigurationsdatei auf dem Server aktualisieren!

php
<?php
    // config.php (auf dem Server anpassen!)
    define('DB_HOST', 'localhost');
    define('DB_USER', 'mein_benutzer');  // Neuer Benutzername
    define('DB_PASS', 'starkes_passwort');  // Neues Passwort
    define('DB_NAME', 'meine_webseite');  // Neuer Datenbankname
    
    // ... Rest der Konfiguration
?>

19.4 Live-Test und ICP-Registrierung (nur für Webseiten in China)

Live-Test (Webseite auf dem echten Server testen)

  1. Domain im Browser eingeben: http://www.ihre-domain.de/
  2. Funktionen testen:
    • [ ] Startseite lädt
    • [ ] Login/Registrierung funktioniert
    • [ ] Formulare funktionieren
    • [ ] Datenbank-Verbindung funktioniert
    • [ ] Bilder werden angezeigt
    • [ ] Keine Fehler/Ausnahmen
  3. Fehler beheben:
    • Fehlerprotokolle (Error Logs) prüfen:
      • Apache: /var/log/apache2/error.log
      • PHP: /var/log/php/error.log oder php.ini -> error_log Pfad
    • display_errors = Off in php.ini setzen (für Produktion!)
    • log_errors = On in php.ini setzen

ICP-Registrierung (nur für Webseiten in China)

Was ist ICP (Internet Content Provider)?

  • Alle Webseiten, die in China gehostet sind und über chinesische Domain (.cn) erreichbar sind, müssen bei der chinesischen Regierung registriert sein (ICP-Nummer).
  • Ausländische Domains (.de, .com, etc.) auf Servern außerhalb Chinas müssen nicht ICP-registriert sein.

Wie ICP registrieren?

  1. Hosting-Anbieter kontaktieren (chinesischer Anbieter, z.B. Alibaba Cloud, Tencent Cloud)
  2. Dokumente einreichen:
    • Personalausweis oder Reisepass (für Einzelpersonen)
    • Geschäftslinzenz (für Unternehmen)
    • Unterzeichnete ICP-Registrierungsformulare
  3. Warten (der Prozess dauert meist 2-4 Wochen)
  4. ICP-Nummer erhalten (muss auf der Webseite im Footer angezeigt werden!)

Wichtige Sicherheitsmaßnahmen für Live-Server!

  1. display_errors = Off in php.ini (keine Fehler im Browser anzeigen!)
  2. session.cookie_secure = On in php.ini (nur HTTPS für Sessions)
  3. session.cookie_httponly = On in php.ini (XSS-Schutz für Cookies)
  4. HTTPS erzwingen (HTTP zu HTTPS Weiterleitung)
    apache
    # .htaccess (Apache)
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  5. Regelmäßige Backups erstellen (Datenbank + Dateien)
  6. Software aktuell halten (PHP, MySQL, Apache, etc.)
  7. Starke Passwörter verwenden (für Datenbank, FTP, SSH)

Zusammenfassung

In diesem Kapitel haben Sie:

  • ✅ Gelernt, wie man Domain und Server kauft
  • ✅ Server-Konfiguration durchgeführt (Shared Hosting und VPS)
  • ✅ Code auf den Server hochgeladen (FTP, SCP, Git)
  • ✅ Datenbank auf dem Server importiert
  • ✅ Live-Test durchgeführt und häufige Fehler behoben
  • ✅ (Für China) ICP-Registrierung verstanden

Nächstes Kapitel: Wir werden Lernressourcen und Interviewfragen lernen.


Übungsaufgaben:

  1. Kaufen Sie eine Domain und einen Shared-Hosting-Server (oder verwenden Sie einen kostenlosen Hosting-Dienst für Tests, z.B. 000webhost.com)
  2. Laden Sie eine einfache PHP-Webseite auf den Server hoch und testen Sie sie
  3. Importieren Sie eine Datenbank auf dem Server
  4. Konfigurieren Sie php.ini für Produktionsumgebung

Häufige Fehler:

  • display_errors = On auf Live-Server → Sicherheitsrisiko!
  • ❌ FTP statt SFTP verwenden → Passwort wird im Klartext übertragen!
  • ❌ Datenbank-Verbindungsdaten in Code belassen → Sicherheitsrisiko! (Verwenden Sie Umgebungsvariablen!)
  • ❌ Keine Backups erstellen → Datenverlustgefahr!

Frei für alle Anfänger