PHP Deployment: VPS, Docker, Cloud – Der ideale Weg

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Wie verliert man sich nicht im Meer der Möglichkeiten?

\n

Sie haben eine tolle PHP-Website entwickelt. Sie läuft lokal einwandfrei, sieht gut aus und stürzt nicht ab. Doch dann kommt der Moment der Wahrheit – das Projekt muss der Welt gezeigt werden. Und hier beginnt die spannende Frage: Welche Deploy-Methode? VPS? Docker? Cloud? Oder vielleicht alles zusammen? Die Auswahl ist riesig, und die Zeit drängt.

\n

Eigentlich ist jeder dieser Wege wie ein anderes Werkzeug im Arsenal eines Entwicklers. Schaufel, Bagger und Planierraupe – alle graben, aber mit unterschiedlicher Geschwindigkeit und zu unterschiedlichen Kosten. In diesem Artikel analysieren wir drei Hauptansätze für das PHP Deployment, liefern funktionierende Code-Beispiele und helfen Ihnen, die richtige Wahl für Ihr Projekt zu treffen. Los geht's!

\n\n

1. Der Klassiker: VPS (Virtual Private Server)

\n

VPS für PHP ist wie eine eigene Wohnung. Sie haben dedizierte Ressourcen (CPU, RAM, Speicher), vollen Root-Zugriff und absolute Freiheit. Sie entscheiden selbst, was installiert wird: Apache oder Nginx, welche PHP-Version und welche Erweiterungen. Dies ist die ideale Wahl für alle, die jede Kleinigkeit kontrollieren wollen und keine Scheu vor der Kommandozeile haben.

\n\n

Vorteile und Nachteile von VPS

\n
    \n
  • Vorteile: Volle Kontrolle, planbare Kosten (fester Monatsbetrag), anpassbar an jede Anforderung.
  • \n
  • Nachteile: Sie sind selbst für Sicherheit, Updates und Backups verantwortlich. Server-Kenntnisse sind erforderlich.
  • \n
\n\n

Wie deployt man PHP auf einem VPS (Schritt für Schritt mit Code)

\n

Angenommen, Sie haben einen Server mit Ubuntu 22.04. Hier ist der minimale Befehlssatz, um eine typische PHP-Anwendung (z. B. Laravel oder Symfony) zum Laufen zu bringen.

\n\n
# Mit dem Server verbinden\nssh root@your-server-ip\n\n# Pakete aktualisieren\napt update && apt upgrade -y\n\n# Nginx, PHP 8.2 und MySQL installieren\napt install nginx php8.2-fpm php8.2-mysql php8.2-cli php8.2-curl php8.2-mbstring php8.2-xml php8.2-zip mysql-server -y\n\n# Nginx für PHP konfigurieren\ncat > /etc/nginx/sites-available/your-site << 'EOF'\nserver {\n    listen 80;\n    server_name your-domain.com;\n    root /var/www/your-site/public;\n\n    index index.php;\n\n    location / {\n        try_files $uri $uri/ /index.php?$query_string;\n    }\n\n    location ~ \\.php$ {\n        include snippets/fastcgi-php.conf;\n        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;\n    }\n}\nEOF\n\n# Seite aktivieren und Nginx neustarten\nln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/\nsystemctl restart nginx\n\n# Anwendungsdateien kopieren (über Git oder SCP)\ncd /var/www\ngit clone https://github.com/your-repo/your-site.git\ncd your-site\ncomposer install --no-dev\nphp artisan key:generate  # für Laravel
\n\n

Fertig! Ihre PHP-Anwendung ist bereits über die IP-Adresse erreichbar. Jetzt müssen Sie nur noch ein SSL-Zertifikat (mit Certbot) hinzufügen und die Datenbank konfigurieren.

\n\n

2. Der moderne Standard: Docker

\n

Wenn VPS eine Wohnung ist, dann ist Docker PHP ein Umzugscontainer. Sie packen die gesamte Anwendung (Code, Abhängigkeiten, Serverkonfiguration) in ein Image und können es überall ausführen. Keine Probleme mehr mit "bei mir läuft es aber" – der Container garantiert eine identische Umgebung.

\n\n

Warum ist Docker großartig für PHP?

\n
    \n
  • Isolation: Jede Anwendung lebt in ihrem eigenen Container.
  • \n
  • Reproduzierbarkeit: Einmal konfiguriert, überall einsetzbar.
  • \n
  • Skalierbarkeit: Einfach 10 Instanzen der Anwendung hochziehen.
  • \n
\n\n

Beispiel: Docker-Compose für PHP + Nginx + MySQL

\n

Erstellen Sie eine Datei docker-compose.yml im Projektverzeichnis:

\n\n
version: '3.8'\n\nservices:\n  app:\n    image: php:8.2-fpm\n    container_name: php_app\n    working_dir: /var/www\n    volumes:\n      - ./:/var/www\n    networks:\n      - app-network\n\n  web:\n    image: nginx:alpine\n    container_name: nginx_web\n    ports:\n      - "80:80"\n    volumes:\n      - ./:/var/www\n      - ./nginx.conf:/etc/nginx/conf.d/default.conf\n    depends_on:\n      - app\n    networks:\n      - app-network\n\n  db:\n    image: mysql:8.0\n    container_name: mysql_db\n    environment:\n      MYSQL_ROOT_PASSWORD: rootpassword\n      MYSQL_DATABASE: app_database\n    volumes:\n      - db_data:/var/lib/mysql\n    networks:\n      - app-network\n\nvolumes:\n  db_data:\n\nnetworks:\n  app-network:\n    driver: bridge
\n\n

Starten Sie dann einfach docker-compose up -d und Ihre PHP-Anwendung läuft in Containern. Keine manuelle Serverkonfiguration mehr nötig!

\n\n

3. Die Zukunft: Cloud-Plattformen (PaaS)

\n

Cloud-Dienste wie Heroku, Platform.sh oder AWS Elastic Beanstalk nehmen Ihnen die gesamte Serververwaltung ab. Sie kümmern sich um Skalierung, Sicherheit und Updates – Sie konzentrieren sich nur auf den Code. Ideal für Teams, die schnell liefern müssen, ohne sich um die Infrastruktur zu kümmern.

\n\n

Vorteile der Cloud für PHP

\n
    \n
  • Kein Server-Management: alles wird automatisiert.
  • \n
  • Automatische Skalierung: passt sich der Last an.
  • \n
  • Einfaches Deployment: oft reicht ein git push.
  • \n
\n\n

Fazit: Welcher Weg ist der richtige für Sie?

\n

Die Wahl hängt von Ihren Anforderungen ab: VPS für maximale Kontrolle, Docker für Konsistenz und Portabilität, Cloud für Bequemlichkeit und Skalierung. Am besten kombinieren Sie die Ansätze: Docker auf einem VPS oder in der Cloud bietet das Beste aus beiden Welten. Testen Sie verschiedene Methoden und finden Sie Ihren idealen Workflow für das PHP Deployment!

Blogs

Buchempfehlungen