Bereitstellung einer PHP-Anwendung auf einem 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



Das Deployment (Bereitstellung) einer PHP-Anwendung auf einem virtuellen privaten Server (VPS) ist ein entscheidender Schritt beim Übergang von der lokalen Entwicklung zur Produktion. Im Gegensatz zu Shared Hosting bietet ein VPS die vollständige Kontrolle über die Ausführungsumgebung, was für moderne Frameworks (Laravel, Symfony) und hochlastige Projekte kritisch ist.



In dieser Anleitung werden wir den vollständigen Deployment-Zyklus einer PHP-Anwendung auf einem VPS mit Ubuntu 22.04 durchgehen. Sie erfahren, wie Sie den Server konfigurieren, die erforderlichen Komponenten installieren und den Bereitstellungsprozess automatisieren. Alle Codebeispiele sind einsatzbereit.



1. VPS-Vorbereitung und erste Konfiguration



1.1. Verbindung zum Server herstellen



Nach dem Kauf des VPS erhalten Sie eine IP-Adresse, einen Login (normalerweise root) und ein Passwort. Stellen Sie eine SSH-Verbindung her:



ssh root@ihre_ip_adresse


Wenn Sie SSH-Keys verwenden (empfohlen), fügen Sie Ihren öffentlichen Schlüssel auf dem Server hinzu.



1.2. Systemaktualisierung und Benutzererstellung



Aktualisieren Sie die Pakete und erstellen Sie einen unprivilegierten Benutzer für die Arbeit:



apt update && apt upgrade -yadduser deployerusermod -aG sudo deployer


Verbinden Sie sich nun mit dem neuen Benutzer:



ssh deployer@ihre_ip_adresse


1.3. Firewall-Konfiguration



Verwenden Sie UFW für den grundlegenden Schutz:



sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enablesudo ufw status


2. Installation des LEMP-Stacks (Linux, Nginx, MySQL, PHP)



2.1. Nginx-Installation



sudo apt install nginx -ysudo systemctl start nginxsudo systemctl enable nginx


Überprüfen Sie die Funktion, indem Sie im Browser http://ihre_ip_adresse öffnen. Sie sollten die Nginx-Begrüßungsseite sehen.



2.2. Installation von PHP und PHP-FPM



Für moderne Frameworks verwenden Sie PHP 8.x:



sudo apt install php8.1-fpm php8.1-mysql php8.1-xml php8.1-mbstring php8.1-curl php8.1-zip php8.1-gd -y


Überprüfen Sie die Version und starten Sie PHP-FPM:



php -vsudo systemctl start php8.1-fpmsudo systemctl enable php8.1-fpm


2.3. MySQL-Installation



sudo apt install mysql-server -ysudo mysql_secure_installation


Erstellen Sie eine Datenbank für Ihre Anwendung:



sudo mysql -u root -pCREATE DATABASE your_database_name;CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_user'@'localhost';FLUSH PRIVILEGES;EXIT;


3. Konfiguration des virtuellen Hosts und Deployment der Anwendung



3.1. Erstellen eines virtuellen Nginx-Hosts



Erstellen Sie eine Konfigurationsdatei für Ihre Domain:



sudo nano /etc/nginx/sites-available/yourdomain.com


Fügen Sie die folgende Konfiguration ein (passen Sie sie an Ihr Projekt an):



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

index index.php index.html;

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

location ~ \\.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; }

location ~ /\\.ht { deny all; }}


Aktivieren Sie die Seite:



sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl reload nginx


3.2. Deployment des Codes via Git



Installieren Sie Git und klonen Sie das Repository:



sudo apt install git -ycd /var/wwwsudo git clone https://github.com/yourusername/your-repo.git yourdomain.com


Konfigurieren Sie die Zugriffsrechte:



sudo chown -R www-data:www-data /var/www/yourdomain.comsudo chmod -R 755 /var/www/yourdomain.com/storagesudo chmod -R 755 /var/www/yourdomain.com/b

Blogs

Buchempfehlungen