Deployer ist ein Open-Source-Deployment-Tool für PHP-Projekte – speziell entwickelt, um Anwendungen wie Laravel, Symfony, Magento, WordPress oder auch generische PHP-Apps automatisiert, wiederholbar und sicher auf Server zu bringen.
Es ist ein CLI-Tool, geschrieben in PHP.
Du definierst dein Deployment in einer deploy.php-Datei mit klaren Aufgaben (Tasks).
Es setzt auf das Prinzip Zero Downtime Deployment, z. B. durch Symlinks.
Unterstützt mehrstufige Umgebungen (z. B. staging, production).
Du installierst Deployer über Composer:
composer require deployer/deployer --dev
Du generierst ein Template:
vendor/bin/dep init
Du konfigurierst deploy.php, z. B. für Laravel:
host('mein-server.com')
->set('deploy_path', '/var/www/meinprojekt')
->set('branch', 'main');
task('deploy', [
'deploy:prepare',
'deploy:vendors',
'artisan:migrate',
'deploy:publish',
]);
Du startest das Deployment:
vendor/bin/dep deploy production
Deployer:
Verbindet sich via SSH mit dem Zielserver
Klont das Git-Repository in ein neues Release-Verzeichnis
Installiert Composer-Abhängigkeiten
Führt Tasks aus (z. B. php artisan migrate)
Verlinkt das neue Release mit dem Live-Verzeichnis (current)
Löscht alte Releases nach Bedarf
| Vorteil | Beschreibung |
|---|---|
| 🚀 Schnell & Skriptbar | Alles per CLI steuerbar |
| 🔁 Rollback-Funktion | Bei Fehlern einfach zum letzten funktionierenden Release zurück |
| ⚙️ Flexibel erweiterbar | Eigene Tasks, Hooks und Bedingungen |
| 🧩 Viele Presets | Für Laravel, Symfony, WordPress etc. |
| 🔐 Sicher durch SSH | Keine FTP-Abhängigkeit |
Docker Compose ist ein Werkzeug, mit dem du mehrere Docker-Container als einen einzigen Service definieren und starten kannst. Statt jeden Container einzeln über die Docker-CLI zu starten, kannst du mit Docker Compose eine docker-compose.yml-Datei schreiben, in der du alle benötigten Dienste (z. B. Datenbank, Webserver, App-Container) deklarierst.
Docker Compose = Projektbeschreibung + Mehrere Container + Ein Befehl zum Starten
docker-compose.ymlversion: '3.9'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"
In diesem Beispiel:
Ein Container baut die lokale Webanwendung.
Ein zweiter Container nutzt das offizielle Redis-Image.
Beide Container sind miteinander vernetzt.
docker-compose up # Startet alle Container im Vordergrund
docker-compose up -d # Startet im Hintergrund (detached)
docker-compose down # Stoppt und entfernt Container, Netzwerke etc.
✅ Einfaches Setup für Multi-Container-Anwendungen
✅ Alles wird in einer Datei versioniert (z. B. für Git)
✅ Reproduzierbare Entwicklungsumgebungen
✅ Leichtes Hoch- und Runterfahren ganzer Stacks
Lokale Entwicklung mit mehreren Services (z. B. App + DB)
Integrationstests mit vollständigem Stack
Simpler Deployment-Workflow (z. B. über CI/CD)
Ein Cronjob ist ein geplanter, wiederkehrender Hintergrundprozess auf Unix- oder Linux-basierten Systemen. Er wird vom Dienstprogramm cron ausgeführt, das regelmäßig überprüft, ob Aufgaben (Jobs) laut Zeitplan auszuführen sind.
Automatisierung: Aufgaben wie Backups, Updates, E-Mail-Versand oder Skript-Ausführungen laufen automatisch.
Zeitsteuerung: Du legst genau fest, wann und wie oft ein Job ausgeführt werden soll (z. B. täglich um 3:00 Uhr oder jeden Montag).
Konfiguration: In sogenannten Crontabs (Cron-Tabellen) wird der Zeitplan definiert.
0 3 * * * /usr/bin/php /var/www/mein-skript.php
Bedeutung:
0 3 * * * → Jeden Tag um 03:00 Uhr
/usr/bin/php /var/www/mein-skript.php → Das auszuführende Kommando
* * * * * (Minute Stunde Tag Monat Wochentag)
Spart Zeit durch Automatisierung
Verringert menschliche Fehler
Ideal für regelmäßige Aufgaben
Bash (Bourne Again Shell) ist eine weit verbreitete Unix-Shell und Kommandozeilen-Interpreter. Sie wurde als freie Software von der Free Software Foundation entwickelt und ist die Standard-Shell auf den meisten Linux-Systemen sowie auf macOS. Bash ist ein Nachfolger der ursprünglichen Bourne Shell (sh), die von Stephen Bourne in den 1970er Jahren entwickelt wurde.
cd, ls, pwd).cp, mv, rm, mkdir).ps, kill, top).find, grep).sed, awk).ping, ifconfig, ssh).#!/bin/bash
# Einfache Schleife, die Hello World 5-mal ausgibt
for i in {1..5}
do
echo "Hello World $i"
done
Zusammengefasst ist Bash eine mächtige und flexible Shell, die sowohl für interaktive Aufgaben als auch für komplexe Automatisierungsskripte verwendet werden kann.
Ein CLI (Command-Line Interface), auf Deutsch Kommandozeilen-Schnittstelle, ist eine Art von Benutzeroberfläche, die es Nutzern ermöglicht, mit einem Computer oder einer Softwareanwendung durch das Eingeben von Textbefehlen in eine Konsole oder ein Terminal zu interagieren. Im Gegensatz zu einer grafischen Benutzeroberfläche (GUI), die auf visuellen Elementen wie Schaltflächen und Symbolen basiert, erfordert ein CLI, dass Nutzer spezifische Befehle in Textform eingeben, um verschiedene Aufgaben auszuführen.
Textbasierte Interaktion:
Präzision und Kontrolle:
Skripting und Automatisierung:
Geringer Ressourcenverbrauch:
Eine CLI ist ein leistungsstarkes Werkzeug, das Benutzern die direkte Kontrolle über ein System oder eine Anwendung durch Textbefehle ermöglicht. Sie wird häufig von Systemadministratoren, Entwicklern und fortgeschrittenen Benutzern verwendet, die Präzision, Effizienz und die Möglichkeit zur Automatisierung von Aufgaben benötigen. Obwohl sie eine steilere Lernkurve im Vergleich zu einer GUI hat, machen ihre Flexibilität und Leistung sie in vielen technischen Umgebungen unverzichtbar.