diff --git a/Dockerfile b/Dockerfile index 67c0c28..c5e1386 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,23 @@ FROM php:8.2-apache -RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli -# Enable mod_rewrite for cleaner URLs if needed, though not strictly requested, it's good practice. + +# Install dependencies +RUN apt-get update && apt-get install -y \ + libpng-dev \ + libjpeg-dev \ + libfreetype6-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && docker-php-ext-install -j$(nproc) gd mysqli + +# Enable Apache rewrite module RUN a2enmod rewrite + +# Copy application source +COPY . /var/www/html/ + +# Set permissions for upload directory +RUN mkdir -p /var/www/html/uploads/images && \ + chown -R www-data:www-data /var/www/html/uploads && \ + chmod -R 755 /var/www/html/uploads + +# Expose port 80 +EXPOSE 80 diff --git a/README.md b/README.md index ac7a350..4dc3a59 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,29 @@ Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderung 1. Führe das SQL-Skript `mysql_update.sql` auf deiner Datenbank aus. 2. Überschreibe die PHP-Dateien mit der neuesten Version. +### Docker Deployment + +Die Anwendung ist vollständig containerisiert ("Dockerized"). Du kannst sie direkt als Container starten und mit einer beliebigen externen MySQL/MariaDB-Datenbank verbinden. + +1. **Image bauen:** + ```bash + docker build -t packliste-app . + ``` + +2. **Container starten:** + (Ersetze die Platzhalter durch deine Datenbank-Zugangsdaten) + ```bash + docker run -d \ + -p 8080:80 \ + -e DB_HOST="deine-datenbank-ip" \ + -e DB_USER="dein_db_user" \ + -e DB_PASSWORD="dein_db_passwort" \ + -e DB_NAME="packliste" \ + --name packliste-container \ + packliste-app + ``` + Die App ist anschließend unter `http://localhost:8080` erreichbar. + --- ## Bedienungsanleitung diff --git a/db_connect.php b/db_connect.php old mode 100755 new mode 100644 index 536ff00..1ab0bb0 --- a/db_connect.php +++ b/db_connect.php @@ -1,41 +1,42 @@ connect_error) { - // In einer Produktivumgebung sollte der Fehler geloggt, aber nicht dem Benutzer angezeigt werden. error_log("Datenbankverbindungsfehler: " . $conn->connect_error); - die("Verbindung zur Datenbank konnte nicht hergestellt werden. Bitte versuchen Sie es später erneut."); + die("Verbindung zur Datenbank konnte nicht hergestellt werden."); } -// Zeichensatz auf UTF-8 setzen, um Probleme mit Sonderzeichen zu vermeiden +// Zeichensatz auf UTF-8 setzen $conn->set_charset("utf8mb4"); -// NEU: Setze eine Standard-Zeitzone, um konsistente Zeitstempel zu gewährleisten. +// Zeitzone setzen date_default_timezone_set('Europe/Berlin'); - ?>