Laravel hosten
PHP läuft über ein eigenes Dockerfile. Damit bestimmst du PHP-Version und Erweiterungen selbst – und Laravel fühlt sich an wie auf einem eigenen Server, nur ohne dessen Pflege.
Dockerfile
FROM php:8.3-cli
RUN apt-get update && apt-get install -y libpq-dev libzip-dev unzip \
&& docker-php-ext-install pdo pdo_pgsql zip opcache
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /app
COPY . .
RUN composer install --no-dev --optimize-autoloader
CMD php artisan serve --host=0.0.0.0 --port=$PORT
Für mehr Durchsatz lohnt sich später FrankenPHP oder php-fpm mit nginx im selben Image.
Queue und Scheduler
Der Queue-Worker läuft als eigener Prozess über das Procfile:
worker: php artisan queue:work --tries=3
Der Laravel-Scheduler braucht keinen Cron auf dem Server: Lege in der Console eine Aufgabe „alle 5 Minuten“
mit dem Befehl php artisan schedule:run an.
Speicher und Sitzungen
Das Verzeichnis storage/app wird bei jedem Deployment ersetzt. Hochgeladene Dateien
gehören nach /daten; Sitzungen und Cache sollten in einer Datenbank liegen, sobald mehr als
eine Instanz läuft.
Häufige Fragen
Läuft auch Symfony oder WordPress?
Symfony ja, auf demselben Weg. WordPress ist möglich, passt aber schlecht: Es erwartet ein beschreibbares Verzeichnis und Plugin-Installationen zur Laufzeit – dafür ist klassisches Webhosting besser geeignet.