Fortgeschrittenes Deployment von PHP-Anwendungen auf VPS: Schritt-für-Schritt-Anleitung

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: Von der lokalen Entwicklung zum Produktionsserver

Die Entwicklung einer PHP-Anwendung auf dem lokalen Rechner ist nur die halbe Miete. Die wahre Meisterschaft beginnt, wenn der Code auf den Server gelangt und echte Benutzer bedient. Fortgeschrittenes PHP-Deployment auf VPS ist nicht einfach nur das Kopieren von Dateien per FTP. Es ist ein komplexer Prozess, der Umgebungseinrichtung, Sicherheit, Automatisierung und Monitoring umfasst.

In diesem Artikel werden wir durchgehen, wie man einen VPS für professionelles Hosting von PHP-Anwendungen mit modernen Tools und DevOps-Praktiken einrichtet. Sie erfahren, wie Sie eine Anwendung auf dem Nginx + PHP-FPM-Stack bereitstellen, eine CI/CD-Pipeline einrichten, die Leistung optimieren und Monitoring implementieren.

Es werden grundlegende Kenntnisse in Linux, PHP und Webservern vorausgesetzt. Wir steigen auf die fortgeschrittene Ebene ein.



1. VPS-Vorbereitung und Umgebungseinrichtung

Serverauswahl und Ersteinrichtung

Wählen Sie für fortgeschrittenes Deployment einen VPS mit mindestens 2 GB RAM und einer SSD-Festplatte. Empfohlene Betriebssysteme sind Ubuntu 22.04 LTS oder Debian 12. Führen Sie nach dem SSH-Zugriff die grundlegende Einrichtung durch:

  • Paketaktualisierung: sudo apt update && sudo apt upgrade -y
  • Benutzer mit sudo-Rechten erstellen: sudo adduser deployer && sudo usermod -aG sudo deployer
  • SSH-Schlüssel einrichten (Passwort-Login deaktivieren)
  • Installation von fail2ban zum Schutz vor Brute-Force-Angriffen
  • UFW konfigurieren (Ports 22, 80, 443 freigeben)


Installation des LEMP-Stacks (Nginx + PHP-FPM + MySQL)

Wir verwenden Nginx als Frontend-Server und PHP-FPM zur Verarbeitung von PHP. Installieren Sie alle Komponenten mit einem Befehl:

sudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip composer git -y

Überprüfen Sie die Versionen:

php -vnginx -vmysql --version


PHP-FPM-Konfiguration für hohe Leistung

Ändern Sie für fortgeschrittenes Deployment die PHP-FPM-Konfiguration. Bearbeiten Sie die Datei /etc/php/8.3/fpm/pool.d/www.conf (die Version kann abweichen):

pm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35pm.max_requests = 500

Wichtige php.ini-Einstellungen für die Produktion:

memory_limit = 256Mupload_max_filesize = 64Mpost_max_size = 64Mmax_execution_time = 300date.timezone = Europe/Berlin

Starten Sie PHP-FPM neu: sudo systemctl restart php8.3-fpm



2. Anwendungsbereitstellung: Von Git zur Produktion

Klonen und Berechtigungseinrichtung

Erstellen Sie ein Verzeichnis für das Projekt und klonen Sie das Repository:

sudo mkdir -p /var/www/yourprojectsudo chown -R deployer:deployer /var/www/yourprojectcd /var/www/yourprojectgit clone git@github.com:yourusername/yourproject.git .

Konfigurieren Sie die Zugriffsrechte:

sudo chown -R www-data:www-data /var/www/yourproject/storagesudo chown -R www-data:www-data /var/www/yourproject/bootstrap/cachesudo chmod -R 775 /var/www/yourproject/storagesudo chmod -R 775 /var/www/yourproject/bootstrap/cache


Nginx-Virtual-Host-Konfiguration

Erstellen Sie eine Konfigurationsdatei für Ihre Domain:

sudo nano /etc/nginx/sites-available/yourproject

Beispiel einer fortgeschrittenen Konfiguration mit Caching und Komprimierung:

server {    listen 80;    server_name yourdomain.com www.yourdomain.com;    root /var/www/yourproject/public;

index index.php index.html;

charset utf-8;

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

location ~ \\.php$ { fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

location ~ /\

Blogs

Buchempfehlungen