From 025115a5f3beba44f229e6343537f68a17b0a99f Mon Sep 17 00:00:00 2001 From: sandrodach Date: Wed, 21 Oct 2026 20:56:00 +0200 Subject: [PATCH 1/2] =?UTF-8?q?README.md=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 From 10e5a221cef26b17e7f61b14f087c0bed9a4d17f Mon Sep 17 00:00:00 2001 From: sandrodach Date: Wed, 21 Oct 2026 20:56:06 +0200 Subject: [PATCH 2/2] README.md aktualisiert --- README.md | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/README.md b/README.md index e69de29..8929283 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,115 @@ +# PHP 8.5 Apache Docker-Umgebung + +Vorkonfigurierte Docker-Umgebung auf Basis von `php:8.5-apache` inklusive selbstsigniertem SSL-Zertifikat, optimiertem OPcache und dynamischem Mail-Relay über `msmtp` (konfigurierbar per `.env`). + +## Enthaltene Komponenten & Features + +* **Webserver:** Apache 2 mit aktiviertem `mod_rewrite` und `mod_ssl` +* **PHP-Version:** PHP 8.5 +* **Installierte PHP-Extensions:** + * `mysqli` (MySQL-Datenbanktreiber) + * `gd` (inkl. WebP- und PNG-Support) + * `imagick` (ImageMagick via PECL) + * `intl`, `zip`, `exif` + * `opcache` (im PHP-8.5-Kern integriert und über `/usr/local/etc/php/conf.d/opcache.ini` vorkonfiguriert) +* **Mail-Versand (`msmtp`):** Ersetzt das veraltete `ssmtp`. Die Konfiguration wird beim Container-Start automatisch aus den Umgebungsvariablen der `.env`-Datei generiert. + +--- + +## Projektstruktur + +```text +├── default +│ ├── docker-compose.yaml +│ └── .env +├── dockerfile +│ ├── Dockerfile +│ ├── php.ini +│ ├── apache2.conf +│ └── 000-default.conf +└── README.md +``` + +> **Hinweis:** Die Konfigurationsdateien (`php.ini`, `apache2.conf`, `000-default.conf`) müssen im Ordner `dockerfile/` liegen, damit der Build-Kontext beim Kopieren (`COPY`) darauf zugreifen kann. In der `default/docker-compose.yaml` verweist `build: ../dockerfile` auf dieses Verzeichnis. + +--- + +## Installation & Erster Start + +### 1. Repository klonen +```bash +git clone +cd /default +``` + +### 2. `.env` konfigurieren +Passe die Datei `default/.env` mit deinen SMTP-Zugangsdaten an: + +```env +SMTP_HOST=smtp.dein-provider.de +SMTP_PORT=587 +SMTP_USER=dein-benutzername@example.com +SMTP_PASS='DeinGeheimesPasswort' +SMTP_FROM=noreply@example.com +SMTP_TLS=on +SMTP_STARTTLS=on +``` +*(Bei Nutzung von Port `465` mit implizitem TLS muss `SMTP_STARTTLS=off` gesetzt werden).* + +### 3. Container bauen und starten +Aus dem Verzeichnis `default/` heraus ausführen: + +```bash +docker compose up -d --build +``` + +--- + +## Update + +Je nachdem, was aktualisiert werden soll, gibt es drei Wege (alle Befehle werden im Ordner `default/` ausgeführt): + +### 1. Nur `.env` oder `docker-compose.yaml` geändert (z. B. neues SMTP-Passwort) +Da `msmtp` die Konfiguration bei jedem Container-Start neu schreibt, ist **kein Neubau** des Images nötig. Es reicht, den Container neu zu erstellen: + +```bash +docker compose up -d +``` + +### 2. Änderungen aus dem Git-Repository übernehmen (`Dockerfile` oder Configs) +Wenn Änderungen am `Dockerfile`, der `php.ini` oder den Apache-Configs über Git heruntergeladen wurden: + +```bash +git pull +docker compose up -d --build +``` + +### 3. PHP-Basis-Image & Systempakete aktualisieren (Sicherheitsupdates) +Docker nutzt standardmäßig den lokalen Cache für `FROM php:8.5-apache` und `apt-get`. Um die neueste Patch-Version von PHP 8.5 und aktuelle Debian-Pakete zu erzwingen: + +```bash +docker compose build --pull --no-cache +docker compose up -d +``` + +*Optional – Alte, nicht mehr genutzte Docker-Images nach einem Update aufräumen:* +```bash +docker image prune -f +``` + +--- + +## E-Mail-Versand testen & Logs prüfen + +Um zu testen, ob der Mail-Versand über `msmtp` aus dem laufenden Container heraus funktioniert: + +**1. Test-Mail über die PHP-CLI senden:** +```bash +docker compose exec php-apache-environment php -r "mail('empfaenger@example.com', 'Docker Test', 'Mailversand funktioniert!');" +``` + +**2. msmtp-Logbuch auslesen:** +```bash +docker compose exec php-apache-environment cat /var/log/msmtp.log +``` +Endet der Log-Eintrag mit `exitcode=EX_OK`, wurde die E-Mail erfolgreich vom SMTP-Server angenommen. \ No newline at end of file