TemplinTech™ Cache Cleaner für das CMS Joomla!

TemplinTech™ Cache Cleaner ist ein kostenloses Console Plugin für das CMS Joomla!®, das für die automatisierte und kontrollierte Bereinigung des zentralen Joomla!-Cache-Verzeichnisses mittels eines systemseitigen Cronjobs entwickelt wurde.

Aktuelle Version: 1.0.2
Typ: Joomla! Console Plugin
Kompatibilität: Joomla! 6.x
Minimale PHP-Version: PHP 8.3
Autor: Dr. Yordan Balabanov
Website: https://templintech.com
Lizenz: GNU General Public License version 2 or later
Status: Stable

1. Zweck

TemplinTech™ Cache Cleaner automatisiert die regelmäßige Bereinigung des zentralen Joomla!-Verzeichnisses /cache. Das Plugin ist für Joomla!-Websites vorgesehen, bei denen der Administrator den Cache regelmäßig per Cronjob bereinigen möchte, ohne sich dafür manuell im Administrationsbereich anmelden zu müssen.

Das Plugin verwendet die standardmäßige Joomla!-Console-Infrastruktur und den standardmäßigen Joomla!-CLI-Einstiegspunkt:

cli/joomla.php

Der Hauptbefehl des Plugins lautet:

templintech:cache-cleaner:run

TemplinTech™ Cache Cleaner verwendet keinen eigenen öffentlichen PHP-Endpunkt, keine URL zur Remote-Ausführung, keinen AJAX-Endpunkt und keine „Secret URL“. Die Ausführung erfolgt serverseitig über PHP CLI.


2. Grundprinzip der Funktionsweise

Bei TemplinTech™ Cache Cleaner gibt es zwei getrennte Einstellungen, die nicht miteinander verwechselt werden sollten:

  • Das Cron-Intervall bestimmt, wie häufig der Server das Plugin startet.
  • Cleanup Interval bestimmt, wie häufig der Cache tatsächlich bereinigt werden soll.

Empfohlen wird eine Konfiguration, bei der der Cronjob das Plugin alle 5 Minuten startet, während der Administrator das tatsächliche Bereinigungsintervall in Joomla! festlegt.

Cron: alle 5 Minuten
Cleanup Interval: 1 Stunde

In diesem Fall startet Cron den Joomla!-Befehl alle 5 Minuten. Das Plugin prüft, wann die letzte erfolgreiche Bereinigung stattgefunden hat. Ist eine Stunde noch nicht vergangen, wird die Ausführung beendet, ohne etwas zu löschen. Ist das Intervall abgelaufen, wird der Cache bereinigt.

2.1. Warum dieses Modell verwendet wird

Dieses Modell ermöglicht es, den Cronjob auf dem Hosting nur einmal einzurichten. Anschließend kann der Administrator das tatsächliche Bereinigungsintervall direkt in Joomla! ändern, ohne die Cron-Konfiguration im Hosting-Control-Panel bearbeiten zu müssen.

2.2. Die wichtige Regel

Wichtig: Ein Cronjob kann keine häufigere Ausführung ermöglichen, als es sein eigener Zeitplan zulässt.

Beispiel:

Cron: einmal täglich
Cleanup Interval: 1 Stunde

In diesem Fall wird der Cache nicht jede Stunde bereinigt. Das Plugin wird nur einmal täglich gestartet und kann den Cache daher höchstens einmal täglich bereinigen.

Die praktische Regel lautet: Das Cron-Intervall muss gleich oder kürzer als das gewählte Cleanup Interval sein.


3. Was das Plugin genau bereinigt

TemplinTech™ Cache Cleaner arbeitet ausschließlich mit dem zentralen Joomla!-Cache-Verzeichnis:

JPATH_ROOT/cache

Üblicherweise handelt es sich dabei um das Verzeichnis:

/cache

Das Plugin erlaubt dem Administrator nicht, einen beliebigen Filesystem-Pfad festzulegen.

Verzeichnisse wie die folgenden können nicht angegeben werden:

  • /administrator
  • /images
  • /media
  • /tmp
  • /home
  • /public_html
  • /
  • ein anderes beliebiges Verzeichnis.

Security: Die Beschränkung auf das Joomla!-Root-Verzeichnis /cache ist beabsichtigt. Sie reduziert das Risiko, dass versehentlich oder böswillig ein falsches Filesystem-Ziel angegeben wird.


4. Was TemplinTech™ Cache Cleaner nicht bereinigt

Das Plugin ist kein universeller Server-Cache-Manager und bereinigt nicht automatisch:

  • Browser-Cache;
  • CDN-Cache;
  • Cloudflare-Cache;
  • Reverse-Proxy-Cache;
  • Varnish;
  • PHP OPcache;
  • Redis;
  • Memcached;
  • Caches der Hosting-Plattform;
  • andere Verzeichnisse außerhalb des Joomla!-Root-Verzeichnisses /cache.

Wenn die Website zusätzliche Caching-Infrastruktur verwendet, muss diese separat verwaltet werden.


5. Systemanforderungen

  • Joomla!: 6.x
  • PHP: 8.3 oder neuer
  • Umgebung: eine Hosting-Umgebung, die die Ausführung von Joomla! über PHP CLI erlaubt
  • Scheduler: Cron oder ein gleichwertiger serverseitiger Scheduler

5.1. PHP für die Website und PHP für Cron sind nicht immer identisch

Die PHP-Version, die der Webserver zum Laden von Joomla! verwendet, kann sich von der PHP-Version unterscheiden, die Cron bei der Ausführung des Befehls verwendet:

php

Wenn die Website mit PHP 8.4 läuft, Cron jedoch eine ältere PHP-Version verwendet, muss der absolute Pfad zur korrekten PHP-CLI-Binary angegeben werden.


6. Installation

6.1. Installation des Pakets

Installieren Sie:

plg_console_templintechcachecleaner-1.0.2.zip

Öffnen Sie in der Joomla!-Administration:

System → Installieren → Erweiterungen

Laden Sie die ZIP-Datei hoch und schließen Sie die Standardinstallation ab.

6.2. Aktivierung des Plugins

Öffnen Sie nach der Installation:

System → Verwalten → Plugins

Suchen Sie nach TemplinTech™ Cache Cleaner, öffnen Sie das Plugin, wählen Sie das gewünschte Cleanup Interval, aktivieren Sie es und speichern Sie die Einstellungen.


7. Verfügbare Intervalle

  • 5 Minuten;
  • 10 Minuten;
  • 15 Minuten;
  • 30 Minuten;
  • 1 Stunde;
  • 2 Stunden;
  • 4 Stunden;
  • 6 Stunden;
  • 12 Stunden;
  • 1 Tag;
  • 1 Woche.

Der Standardwert beträgt 1 Stunde.

7.1. Schutz vor ungültigen Werten

Das Plugin akzeptiert ausschließlich vordefinierte Werte. Wird aufgrund einer manuellen Datenbankänderung oder einer beschädigten Konfiguration ein nicht unterstützter Wert gesetzt, verwendet TemplinTech™ Cache Cleaner den sicheren Standardwert:

3600 Sekunden / 1 Stunde


8. Cron-Informationen in den Plugin-Einstellungen

TemplinTech™ Cache Cleaner generiert die erforderlichen Cron-Informationen direkt im Joomla!-Backend.

Der Administrator sieht:

  • Cache target
  • CLI path
  • Cron command
  • Crontab line
  • Status command
  • Dry-run command
  • Force command

8.1. Cache target

Dies ist das Verzeichnis, das bereinigt wird.

/home/customer/www/example.com/public_html/cache

Dieser Wert dient nur zur Information und darf nicht als Cron-Befehl eingetragen werden.

8.2. CLI path

Dies ist der absolute Filesystem-Pfad zum standardmäßigen Joomla!-CLI-Einstiegspunkt.

/home/customer/www/example.com/public_html/cli/joomla.php

8.3. Cron command

Dies ist der Befehl, der beispielsweise in ein Feld mit der Bezeichnung Command, Command to Run, Befehl, Cron Command oder Task Command eingetragen werden muss.

php '/home/customer/www/example.com/public_html/cli/joomla.php' templintech:cache-cleaner:run --quiet

8.4. Crontab line

Dies ist die vollständige Cron-Zeile, die sowohl den Zeitplan als auch den Befehl enthält.

*/5 * * * * php '/home/customer/www/example.com/public_html/cli/joomla.php' templintech:cache-cleaner:run --quiet >/dev/null 2>&1

Wichtig: Tragen Sie nicht die vollständige Crontab Line in das Feld „Command“ ein, wenn das Hosting-Panel separate Felder für Minute, Hour, Day, Month und Weekday bereitstellt.


9. Empfohlene Cron-Konfiguration

Wenn die Hosting-Umgebung dies erlaubt, lautet der empfohlene Cron-Zeitplan:

*/5 * * * *

Das bedeutet: Führe den Befehl alle 5 Minuten aus.

9.1. Bei einem Hosting-Panel mit separaten Cron-Feldern

Minute: */5
Hour: *
Day: *
Month: *
Weekday: *

Command:

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

Wichtig: Verwenden Sie den absoluten Filesystem-Pfad, der von TemplinTech™ Cache Cleaner angezeigt wird. Verwenden Sie keine URL wie https://example.com/cli/joomla.php.


10. Was kopiert werden soll und was nicht

10.1. Wenn der Hoster separate Zeitfelder bereitstellt

Verwenden Sie die einzelnen Cron-Werte und kopieren Sie nur den Cron Command in das Feld Command.

10.2. Wenn der Hoster die vollständige Crontab-Zeile akzeptiert

Verwenden Sie direkt den vom Plugin angezeigten Wert Crontab Line.

10.3. Kopieren Sie nicht den Beispielpfad aus dieser Dokumentation

Pfade wie:

/home/user/public_html/cli/joomla.php

sind lediglich Beispiele. Verwenden Sie den Pfad, den TemplinTech™ Cache Cleaner in Ihrem Joomla!-Backend anzeigt.


11. PHP CLI binary

TemplinTech™ Cache Cleaner generiert einen Befehl, der mit Folgendem beginnt:

php

Bei vielen Hostern reicht dies aus. Bei anderen muss das anfängliche php durch die absolute PHP-CLI-Binary ersetzt werden.

Beispiel:

/usr/local/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


12. Erster Test vor dem Einrichten des Cronjobs

12.1. Status

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --status

Dieser Befehl löscht keine Dateien.

12.2. Dry run

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force --dry-run

Der Dry Run simuliert die Bereinigung, ohne Dateien oder Verzeichnisse tatsächlich zu löschen.

12.3. Force

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force

Dieser Befehl führt unabhängig vom eingestellten Intervall sofort eine reale Bereinigung durch.


13. CLI-Optionen

13.1. Normale Ausführung

templintech:cache-cleaner:run

Das Plugin prüft das Intervall und bereinigt nur dann, wenn der Zeitpunkt für die nächste Bereinigung erreicht ist.

13.2. --quiet

--quiet reduziert unnötige CLI-Ausgaben bei automatischer Cron-Ausführung.

13.3. --status

--status zeigt den aktuellen Status an, ohne Dateien zu löschen.

13.4. --force

--force startet die Bereinigung sofort, ohne auf das konfigurierte Intervall zu warten. Die Security-Prüfungen bleiben aktiv.

13.5. --dry-run

--dry-run simuliert die Bereinigung, ohne Dateien zu löschen und ohne den last-run state zu aktualisieren.


14. Erste automatische Ausführung

Wenn das Plugin noch nie ausgeführt wurde und keine letzte erfolgreiche Bereinigung gespeichert ist, gilt die erste normale Cron-Ausführung als fällig.

Nach der Installation muss nicht das vollständige gewählte Cleanup Interval abgewartet werden.


15. Dateien, die erhalten bleiben

TemplinTech™ Cache Cleaner löscht das Joomla!-Verzeichnis /cache selbst nicht.

Auf Root-Ebene bleiben folgende Dateien erhalten:

  • index.html
  • .htaccess
  • web.config
  • .gitignore
  • .gitkeep
  • .templintechcachecleaner.state.json
  • .templintechcachecleaner.lock

16. State-Datei

TemplinTech™ Cache Cleaner verwendet eine lokale State-Datei:

/cache/.templintechcachecleaner.state.json

Sie enthält begrenzte technische Informationen über die letzte erfolgreiche Ausführung, beispielsweise Version, Timestamp, Anzahl gelöschter Dateien, Anzahl gelöschter Verzeichnisse und den ungefähr freigegebenen Speicherplatz.

Die State-Datei enthält keine Benutzerkonten, E-Mail-Adressen, IP-Adressen, Cookies, Passwörter, Datenbankzugangsdaten oder Visitor-Tracking-Informationen.

Die maximal zulässige Größe der State-Datei beträgt 16384 Bytes.


17. Lock-Datei und parallele Ausführung

Das Plugin verwendet:

/cache/.templintechcachecleaner.lock

um eine gleichzeitige Ausführung durch mehr als einen Cron-Prozess zu verhindern.

Wenn ein Prozess bereits eine Bereinigung ausführt, wird der zweite sicher beendet und startet keine parallele Bereinigung.

17.1. Stale lock

Wenn ein Cron-Prozess unerwartet abgebrochen wird und die Lock-Datei auf dem Datenträger verbleibt, betrachtet Version 1.0.2 den Lock nach folgendem Zeitraum als veraltet:

21600 Sekunden / 6 Stunden


18. Security-Modell

TemplinTech™ Cache Cleaner führt Filesystem-Operationen aus und verwendet daher ein konservatives Security-Modell.

Grundprinzip: Wenn das Plugin nicht bestätigen kann, dass das Filesystem-Ziel sicher ist, wird der Vorgang abgebrochen.

18.1. Kein benutzerdefiniertes Filesystem-Ziel

Der Bereinigungspfad kann nicht über GET, POST, URL, CLI-Parameter, administratives Textfeld oder Environment Variable übergeben werden.

18.2. Prüfung von Joomla! /cache

Vor der Bereinigung prüft das Plugin, ob das Verzeichnis existiert, ob es sich um ein echtes Verzeichnis handelt, ob es kein symbolischer Link ist und ob der aufgelöste Pfad dem erwarteten Joomla!-Root-Cache-Verzeichnis entspricht.

18.3. Symbolische Links

Wenn das Joomla!-Root-Verzeichnis /cache selbst ein symbolischer Link ist, verweigert das Plugin die Ausführung.

Wird innerhalb des Cache-Baums ein symbolischer Link erkannt, wird dessen Ziel nicht verfolgt.

18.4. TOCTOU-Hardening

Version 1.0.2 enthält zusätzliche Prüfungen gegen Filesystem-Time-of-check-to-time-of-use-Situationen. Vor kritischen Operationen werden Parent Path, Filesystem Object Type, Device, Inode und Resolved Location erneut geprüft.

18.5. Schutz der State-Datei

State-Informationen werden über eine temporäre eindeutige Datei und Atomic Rename geschrieben, anstatt unsicher direkt überschrieben zu werden.

18.6. File permissions

Operational Files werden, sofern vom Betriebssystem unterstützt, auf Owner-only-Permissions 0600 beschränkt.

18.7. Keine öffentliche Cron-URL

Security: Erstellen Sie keine öffentliche PHP-Datei oder URL-Endpunkt nur, um eine Einschränkung des Hosting-Schedulers zu umgehen.


19. Datenschutz

TemplinTech™ Cache Cleaner verwendet keinen eigenen Tracking-Mechanismus und sammelt oder sendet keine IP-Adressen, Browser-Fingerprints, Analytics-Daten, Benutzerkonten, E-Mail-Adressen, Visitor Identifiers oder Inhalte des Joomla!-Caches an TemplinTech.

Der Runtime State wird lokal auf dem Server gespeichert.

Die standardmäßige Joomla! Extension Update-Funktionalität kann eine Anfrage an den offiziellen TemplinTech-Update-Endpunkt senden, um nach einer neuen Version zu suchen.


20. Joomla! Update System

TemplinTech™ Cache Cleaner verwendet das standardmäßige Joomla! Update System zur Prüfung und Verteilung zukünftiger Versionen.

Offizieller Update Feed:

https://templintech.com/joomlaextensions/updates/templintechcachecleaner.xml

Offizieller Changelog:

https://templintech.com/joomlaextensions/updates/templintechcachecleaner-changelog.xml

Öffentliche Seite:

https://templintech.com/extensions/templintechcachecleaner

Release Packages:

https://templintech.com/joomlaextensions/downloads/templintechcachecleaner/


21. Package-Integrität

TemplinTech-Update-Metadaten können kryptografische Checksums für das Release-Paket enthalten, darunter:

  • SHA-256;
  • SHA-384;
  • SHA-512.

Sie dienen zur Überprüfung der Integrität des heruntergeladenen Update-Pakets.


22. Joomla! 7

TemplinTech™ Cache Cleaner 1.0.2 ist offiziell für Joomla! 6.x deklariert.

Die Architektur basiert auf dem modernen Joomla!-Extension-Modell, einschließlich Namespace, Dependency Injection, Joomla! Console und Symfony Console-Infrastruktur.

Dies stellt keine Erklärung einer offiziellen Joomla! 7-Kompatibilität dar, solange keine reale Joomla! 7-Release-Version für Compatibility Testing verfügbar ist.


23. Architektur

  • Joomla! Console Plugin architecture;
  • PSR-4 namespace;
  • Joomla! dependency injection service provider;
  • Joomla! Registry für Plugin-Parameter;
  • der standardmäßige Joomla!-Einstiegspunkt cli/joomla.php;
  • Symfony Console command infrastructure;
  • PHP attributes;
  • strict PHP types.

Haupt-Namespace:

TemplinTech\Plugin\Console\TemplinTechCacheCleaner

Extension element: templintechcachecleaner
Plugin group: console


24. Unterstützte Sprachen

  • Bulgarisch — bg-BG;
  • Englisch — en-GB;
  • Deutsch — de-DE.

25. Performance

TemplinTech™ Cache Cleaner führt bei einem normalen Frontend-Besuch der Joomla!-Website keine Filesystem-Bereinigung durch. Der Cleanup-Prozess wird über Joomla! CLI durch Cron gestartet.

Das bedeutet, dass ein normaler Aufruf einer Frontend-Seite den Bereinigungsprozess nicht direkt startet.


26. Empfohlene Production-Konfiguration

Cron: alle 5 Minuten
Cleanup Interval: 1 Stunde

Dies bedeutet nicht, dass der Cache alle 5 Minuten gelöscht wird. Cron prüft alle 5 Minuten, während die tatsächliche Bereinigung ungefähr einmal pro Stunde erfolgt.


27. Einrichtung bei Shared Hosting

Die folgenden Anweisungen richten sich auch an Benutzer ohne Cron-Erfahrung.

Wichtig: Es gibt keine universelle Cron-Oberfläche für alle Hosting-Unternehmen. Einige Anbieter verwenden cPanel, andere ein eigenes Control Panel, und bei manchen Shared-Hosting-Paketen ist die Ausführung beliebiger CLI-Befehle nicht erlaubt.

27.1. Die wichtigsten Werte

CLI Path — der absolute Pfad zu Joomla! cli/joomla.php.

Cron Command — der Befehl ohne Zeitplan.

Crontab Line — Zeitplan und Befehl in einer Zeile.

Cleanup Interval — wie häufig TemplinTech™ Cache Cleaner den Cache tatsächlich bereinigen soll.

27.2. Der häufigste Fehler

Wenn die Hosting-Oberfläche separate Felder für Minute, Hour, Day, Month, Weekday und Command hat, tragen Sie */5 * * * * nicht in das Feld Command ein.

27.3. Der zweithäufigste Fehler

Verwenden Sie keine URL zur Joomla! CLI.

Falsch:

https://example.com/cli/joomla.php

Richtig:

/home/account/example.com/public_html/cli/joomla.php


28. cPanel — universelle Konfiguration

Öffnen Sie:

cPanel → Advanced → Cron Jobs

Minute: */5
Hour: *
Day: *
Month: *
Weekday: *

Command:

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet >/dev/null 2>&1


29. Hostinger

Pfad: Websites → Dashboard → Cron Jobs

Type: Custom

Schedule:

*/5 * * * *

Command:

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

Hostinger verwendet UTC für Cron-Zeitpläne. Bei einer Ausführung alle 5 Minuten hat dies praktisch keine Auswirkungen.


30. SiteGround

Pfad: Site Tools → Devs → Cron Jobs

Stellen Sie die Ausführung auf alle 5 Minuten und tragen Sie den „Cron Command“ aus TemplinTech™ Cache Cleaner ein.

Wenn SiteGround eine konkrete PHP-CLI-Binary anzeigt, verwenden Sie diese anstelle des anfänglichen php.


31. Bluehost

Pfad: Websites → Manage Site → Cron Jobs oder cPanel → Advanced → Cron Jobs

Minute: */5
Hour: *
Day: *
Month: *
Weekday: *

Tragen Sie im Feld Command den vom Plugin generierten Cron Command ein.


32. HostGator

Pfad: cPanel → Advanced → Cron Jobs

Verwenden Sie folgenden Zeitplan:

*/5 * * * *

Verwenden Sie im Feld Command eine PHP-8.3+-CLI-Binary und den generierten Joomla!-CLI-Pfad.


33. DreamHost

DreamHost verwendet versionsspezifische PHP-CLI-Binaries.

Beispiele:

/usr/local/php83/bin/php
/usr/local/php84/bin/php

Beispielbefehl:

/usr/local/php84/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


34. GoDaddy Web Hosting mit cPanel

Pfad: Web Hosting → Manage → cPanel Admin → Advanced → Cron Jobs

Beispiel für eine PHP-Binary:

/usr/local/bin/php

Beispielbefehl:

/usr/local/bin/php -q '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


35. Namecheap Shared Hosting

Pfad: cPanel → Advanced → Cron Jobs

Namecheap Shared Hosting sollte nicht mit einem Cron-Intervall von weniger als 5 Minuten konfiguriert werden.

Geeigneter Zeitplan:

*/5 * * * *


36. InMotion Hosting

Pfad: cPanel → Cron Jobs

Verwenden Sie den Zeitplan */5 * * * * und tragen Sie den Cron Command aus TemplinTech™ Cache Cleaner ein.


37. GreenGeeks

Pfad: Manage → Dev Tools → Cron Jobs

Verwenden Sie folgenden Zeitplan:

*/5 * * * *

Tragen Sie den Cron Command aus dem Plugin in das Command-Feld ein.


38. FastComet

Pfad: cPanel → Cron Jobs

Minute: */5
Hour: *
Day: *
Month: *
Weekday: *


39. HostArmada

Pfad: cPanel → Advanced → Cron Jobs

Verwenden Sie den Zeitplan */5 * * * * und den Cron Command aus dem Plugin.


40. ScalaHosting

40.1. SPanel

Öffnen Sie Cron Jobs oder Cron Jobs Manager.

Schedule:

*/5 * * * *

Tragen Sie im Feld Cron Command den Wert aus TemplinTech™ Cache Cleaner ein.

40.2. cPanel

Wenn das Konto cPanel verwendet, folgen Sie den standardmäßigen cPanel-Anweisungen.


41. Krystal Hosting

Pfad: cPanel → Advanced → Cron Jobs

Beispiel für eine PHP-Binary:

/usr/local/bin/php

Beispiel:

/usr/local/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


42. hosting.com / ehemalige A2-Hosting-Konten

Pfad: cPanel → Advanced → Cron Jobs

In einigen Shared-Hosting-Umgebungen kann das minimale Cron-Intervall 15 Minuten betragen.

Verwenden Sie in diesem Fall:

*/15 * * * *

und wählen Sie ein Cleanup Interval von 15 Minuten oder länger.


43. Hetzner Web Hosting / konsoleH

Pfad: Services / Einstellungen → Cronjob Manager

Verwenden Sie einen PHP-Interpreter, der zur PHP-Version von Joomla! passt.

Wenn der Interpreter separat ausgewählt wird, verwenden Sie im Command-Feld den Joomla!-CLI-Pfad und die Argumente:

'/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

Verwenden Sie für den Zeitplan, sofern der Tarif dies erlaubt:

*/5 * * * *


44. webgo

Pfad: Vertragsübersicht → Cronjobs

Für Cron-Ausführung auf Minutenebene kann die Nutzung von Webspace Admin erforderlich sein.

Minuten: */5
Stunden: *
Tag: *
Monat: *
Wochentag: *

Bei einer versionsspezifischen PHP-CLI-Binary kann der Befehl beispielsweise so aussehen:

/usr/bin/php83 '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet


45. mittwald

In einer Umgebung, die einen separaten Interpreter und separate Argumente erlaubt:

Interpreter: PHP
Datei: /REAL/PATH/cli/joomla.php
Arguments: templintech:cache-cleaner:run --quiet
Schedule: */5 * * * *


46. STRATO

46.1. STRATO Legacy Hosting Platform

Bei Legacy-Paketen mit Cron Jobs kann serverseitige PHP-Ausführung möglich sein.

Beispielhafte Grundlage:

/bin/php -f '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

46.2. STRATO New Hosting Platform

Wichtig: Wenn der konkrete STRATO-Hosting-Tarif keine Cron Jobs oder keinen CLI-Scheduler bereitstellt, kann der automatische Modus von TemplinTech™ Cache Cleaner nicht wie vorgesehen verwendet werden.

Erstellen Sie keinen öffentlichen PHP-Endpunkt als Umgehungslösung.


47. IONOS

Bei IONOS sollte geprüft werden, ob das konkrete Hosting-Produkt eine tatsächliche PHP-CLI-Cron-Ausführung bereitstellt.

Wenn der Cron Job Manager ausschließlich eine URL akzeptiert, ist er nicht direkt mit der CLI-only-Architektur von TemplinTech™ Cache Cleaner kompatibel.

Security: Erstellen Sie keine öffentliche Datei cache-cleaner.php nur, um das CLI-Plugin in eine URL-Cron-Aufgabe umzuwandeln.


48. OVHcloud Web Hosting

Beim standardmäßigen OVHcloud-Web-Hosting-Scheduler kann es Einschränkungen sowohl hinsichtlich des minimalen Intervalls als auch hinsichtlich der Übergabe von Argumenten an ein PHP-Script geben.

Wenn der Scheduler nur eine Ausführung pro Stunde erlaubt, wählen Sie ein Cleanup Interval von 1 Stunde oder länger.

Die alleinige Ausführung von:

cli/joomla.php

reicht nicht aus. Der Scheduler muss zusätzlich Folgendes übergeben können:

templintech:cache-cleaner:run


49. Vergleich der Hosting-Einschränkungen

Hostinger: geeignet bei Verwendung eines Custom Cron Command.

SiteGround: geeignet über Site Tools Cron Jobs.

Bluehost: geeignet bei verfügbarem PHP-8.3+-CLI-Cron.

HostGator: geeignet bei verfügbarer PHP-8.3+-CLI-Binary.

DreamHost: geeignet; versionsspezifische PHP-CLI-Binaries sind verfügbar.

GoDaddy cPanel: geeignet.

Namecheap: geeignet, wenn das minimale Cron-Intervall eingehalten wird.

InMotion Hosting: geeignet über cPanel.

GreenGeeks: geeignet.

FastComet: geeignet.

HostArmada: geeignet.

ScalaHosting: geeignet bei SPanel/cPanel mit CLI-Cron.

Krystal: geeignet über cPanel.

hosting.com: geeignet, es kann jedoch ein Mindestintervall von 15 Minuten gelten.

Hetzner: geeignet über Cronjob Manager.

webgo: geeignet, wenn eine passende Cron-Frequenz verfügbar ist.

mittwald: geeignet bei Cronjob mit PHP-Interpreter.

STRATO: abhängig von der konkreten Hosting-Plattform und dem Tarif.

IONOS: ein URL-only-Scheduler ist nicht direkt kompatibel.

OVHcloud: die Unterstützung vollständiger CLI-Argumente muss geprüft werden.


50. Wenn Ihr Hoster nicht in der Liste enthalten ist

Suchen Sie nach einem Menü mit einer Bezeichnung wie:

  • Cron Jobs;
  • Scheduled Tasks;
  • Scheduler;
  • Task Scheduler;
  • Geplante Aufgaben;
  • Cronjobs.

Prüfen Sie anschließend, ob die Oberfläche die Ausführung eines Befehls wie folgt erlaubt:

php /path/to/script.php argument

Wenn der Scheduler nur eine URL akzeptiert, reicht er für den direkten Start von TemplinTech™ Cache Cleaner nicht aus.


51. Wenn der Hoster keinen 5-Minuten-Cron erlaubt

Wenn das kürzeste erlaubte Intervall 15 Minuten beträgt:

Cron: alle 15 Minuten
Cleanup Interval: 15 Minuten oder länger

Wenn das kürzeste erlaubte Intervall 1 Stunde beträgt:

Cron: einmal pro Stunde
Cleanup Interval: 1 Stunde oder länger


52. Prüfung der PHP-CLI-Version

Wenn Sie SSH- oder Terminal-Zugriff haben:

php -v

Wenn Sie eine absolute Binary verwenden:

/usr/local/bin/php -v

TemplinTech™ Cache Cleaner 1.0.2 erfordert PHP 8.3 oder neuer.


53. Der Befehl funktioniert manuell, aber nicht über Cron

Die häufigsten Ursachen sind:

  • Cron verwendet eine andere PHP-Binary;
  • Cron verwendet eine andere PHP-Version;
  • die PATH-Umgebung ist unterschiedlich;
  • der Filesystem-Benutzer ist unterschiedlich;
  • der absolute Joomla!-Pfad ist falsch;
  • PHP CLI hat keine Schreibrechte für /cache;
  • der Hosting-Anbieter beschränkt die CLI-Ausführung;
  • der Cron-Befehl enthält Shell-Syntax, die das jeweilige Panel nicht akzeptiert.

54. Fehler „php: command not found“

Wenn Sie Folgendes erhalten:

php: command not found

verwenden Sie die absolute PHP-CLI-Binary, die vom Hosting-Anbieter bereitgestellt wird.


55. Joomla! erkennt den Befehl nicht

Wenn Joomla! Folgendes nicht erkennt:

templintech:cache-cleaner:run

prüfen Sie, ob das Plugin installiert und aktiviert ist, ob Sie die korrekte Joomla!-Datei cli/joomla.php verwenden und ob die PHP-CLI-Version kompatibel ist.


56. Permission error

Wenn der PHP-CLI-Benutzer nicht über die erforderlichen Rechte für Joomla! /cache verfügt, setzen Sie nicht automatisch:

0777 ist keine empfohlene universelle Lösung.

Prüfen Sie Owner, Group, PHP-CLI-Benutzer und die korrekten Filesystem-Permissions.


57. „Another process is already running“

Die Meldung:

Skipped: another TemplinTech Cache Cleaner process is already running.

weist normalerweise nicht auf einen Fehler hin. Ein anderer Prozess hält bereits den Cleanup Lock.


58. „Cleanup interval has not elapsed“

Dies ist normales Verhalten. Cron hat das Plugin gestartet, aber der Zeitpunkt für die nächste tatsächliche Bereinigung wurde noch nicht erreicht.


59. Das Cache-Verzeichnis existiert nicht

Wenn das Joomla!-Root-Verzeichnis /cache derzeit nicht existiert, gibt es für das Plugin nichts zu bereinigen, und dies wird nicht automatisch als kritischer Fehler behandelt.


60. Cron-E-Mail-Benachrichtigungen

Viele Hosting-Panels können nach jeder Cron-Ausführung eine E-Mail senden. Dies ist während der ersten Tests hilfreich.

Nach einem erfolgreichen Test können Sie Folgendes verwenden:

--quiet

und bei einer geeigneten Shell:

>/dev/null 2>&1


61. Empfohlene Vorgehensweise für Einsteiger

Schritt 1: Installieren Sie TemplinTech™ Cache Cleaner.

Schritt 2: Aktivieren Sie das Plugin.

Schritt 3: Lassen Sie das Cleanup Interval auf 1 Stunde eingestellt.

Schritt 4: Suchen Sie in den Einstellungen nach Cron Setup.

Schritt 5: Kopieren Sie den Cron Command.

Schritt 6: Öffnen Sie Cron Jobs / Scheduled Tasks im Hosting-Control-Panel.

Schritt 7: Stellen Sie Cron auf alle 5 Minuten ein, sofern der Hosting-Tarif dies erlaubt.

Schritt 8: Fügen Sie den Cron Command in das Feld Command ein.

Schritt 9: Speichern Sie den Cronjob.

Schritt 10: Prüfen Sie das Ergebnis mit dem Status Command.


62. Backup vor der ersten Verwendung

Cache-Dateien sind ihrer Natur nach temporär, dennoch ist es sinnvoll, vor dem Einsatz einer neuen Extension in einer Production-Umgebung über ein aktuelles Backup zu verfügen.

Verwenden Sie zunächst:

--force --dry-run

vor dem tatsächlichen:

--force


63. Deinstallation

TemplinTech™ Cache Cleaner kann über den standardmäßigen Joomla! Extension Manager deinstalliert werden.

Wichtig: Nach der Deinstallation müssen Sie den entsprechenden Cronjob manuell im Hosting-Control-Panel entfernen. Joomla! verwaltet keine Cron-Aufgaben beim externen Hosting-Anbieter.

63.1. Runtime-Dateien

Nach der endgültigen Deinstallation können folgende Dateien verbleiben:

/cache/.templintechcachecleaner.state.json
/cache/.templintechcachecleaner.lock

Sie können nach der endgültigen Deinstallation des Plugins manuell entfernt werden.


64. Upgrade

Es ist nicht erforderlich, die vorherige Version vor einem Update zu deinstallieren.

TemplinTech™ Cache Cleaner verwendet den Joomla!-Upgrade-Mechanismus und das Joomla! Update System. Bei einem normalen Update bleibt die bestehende Konfiguration erhalten.


65. Changelog für Version 1.0.2

Security

  • zusätzlich gehärtetes Filesystem Traversal;
  • Schutz vor Symbolic-Link-Substitution;
  • zusätzlicher TOCTOU-Schutz;
  • Atomic Exclusive Lock Creation;
  • Filesystem Identity Validation;
  • Schutz des State Path;
  • eingeschränkte Operational File Permissions, sofern unterstützt.

Configuration

  • Whitelist der zulässigen Cleanup-Interval-Werte;
  • endgültige TemplinTech Joomla! Update System-Endpunkte.

66. Häufig gestellte Fragen

Muss Cron zwingend alle 5 Minuten ausgeführt werden?

Nein. Dies ist die empfohlene Konfiguration, wenn der Hosting-Anbieter sie erlaubt.

Wenn das Cleanup Interval 1 Stunde beträgt, warum sollte Cron alle 5 Minuten starten?

Damit das Plugin das tatsächliche Intervall selbst verwalten kann und eine Änderung keine Bearbeitung der Cron-Konfiguration erfordert.

Wird der Cache alle 5 Minuten bereinigt?

Nein, außer Sie wählen ausdrücklich ein Cleanup Interval von 5 Minuten.

Kann ich ein anderes Verzeichnis festlegen?

Nein. Version 1.0.2 arbeitet absichtlich ausschließlich mit dem Joomla!-Root-Verzeichnis /cache.

Wird das /cache-Verzeichnis selbst gelöscht?

Nein.

Wird die root index.html gelöscht?

Nein.

Folgt das Plugin symbolischen Links?

Nein.

Gibt es eine öffentliche URL zur Ausführung?

Nein.

Sendet das Plugin Cache-Inhalte an TemplinTech?

Nein.

Ist ein Download Key erforderlich?

Nicht für die derzeitige kostenlose Distribution.

Kann das Plugin ohne Cron funktionieren?

Die CLI-Befehle können manuell ausgeführt werden, für die automatische periodische Bereinigung ist jedoch Cron oder ein anderer geeigneter serverseitiger Scheduler erforderlich.

Kann ein externer Web-Cron-Service das Plugin starten?

Nicht direkt. Das Plugin stellt bewusst keinen öffentlichen HTTP-Endpunkt bereit.

Was passiert, wenn der Hoster Cron nur einmal pro Stunde erlaubt?

Stellen Sie das Cleanup Interval auf 1 Stunde oder länger.

Was passiert, wenn der Hoster Cron mindestens im 15-Minuten-Abstand erlaubt?

Verwenden Sie Cron alle 15 Minuten und ein Cleanup Interval von 15 Minuten oder länger.


67. Kurzübersicht

Status

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --status

Dry run

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force --dry-run

Sofortige Bereinigung

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force

Normale Cron-Ausführung

php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet

Empfohlener Crontab

*/5 * * * * php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet >/dev/null 2>&1


68. Informationen für den Support

Bei einem technischen Problem ist es hilfreich, folgende Informationen bereitzuhalten:

  • Joomla!-Version;
  • TemplinTech™ Cache Cleaner-Version;
  • PHP-Version der Website;
  • PHP-CLI-Version;
  • Hosting-Anbieter;
  • Hosting-Tarif;
  • verwendeter Cron-Befehl;
  • gewähltes Cleanup Interval;
  • Ergebnis des Status Command;
  • exakte CLI-Fehlerausgabe.

Nicht öffentlich veröffentlichen: Hosting-Passwörter, Joomla!-Administrator-Passwörter, Datenbankpasswörter, private SSH-Schlüssel, API Keys oder andere Zugangsdaten.


69. Lizenz und Urheberschaft

TemplinTech™ Cache Cleaner wird unter folgender Lizenz bereitgestellt:

GNU General Public License version 2 or later.

Die kostenlose Verbreitung der Software hebt den urheberrechtlichen Schutz des Originalcodes nicht auf.

Autor: Dr. Yordan Balabanov
Copyright: Copyright (C) 2026 Dr. Yordan Balabanov.
Website: https://templintech.com


70. TemplinTech™ Cache Cleaner

TemplinTech™ Cache Cleaner ist ein kostenloses Joomla! Console Plugin zur kontrollierten und automatisierten Bereinigung des zentralen Joomla!-Cache-Verzeichnisses mittels serverseitigem Cronjob.

Das Plugin wurde mit Schwerpunkt auf klarer Konfiguration, begrenztem Filesystem Scope, CLI-only Execution, sicherer paralleler Ausführung, Filesystem Hardening und moderner Joomla!-Extension-Architektur entwickelt.

 

Developed by Dr. Yordan Balabanov.
Copyright (C) 2026 Dr. Yordan Balabanov.
Licensed under GNU General Public License version 2 or later.


71. Marken

TemplinTech™ und TemplinTech™ Cache Cleaner werden als Produkt- und Geschäftsbezeichnungen von Dr. Yordan Balabanov verwendet.

Joomla!® ist eine eingetragene Marke von Open Source Matters, Inc. in den Vereinigten Staaten und anderen Ländern.

TemplinTech™ Cache Cleaner ist eine unabhängig entwickelte Erweiterung und ist weder Bestandteil von Open Source Matters, Inc. oder dem Joomla! Project noch wird sie von diesen unterstützt oder empfohlen.

Die Verwendung der Bezeichnung Joomla! in dieser Dokumentation erfolgt beschreibend und kennzeichnet die Kompatibilität und den vorgesehenen Verwendungszweck der Erweiterung.

KONTAKT

Ansprechpartner: Dr. Yordan Balabanov
Telefon: +49 176 376 708 10
E-Mail: info@templintech.com
Geschäftszeiten: Mo.–Fr.: 09:00–16:00 Uhr (CET/CEST)

© 2025–2026 TemplinTech™. Betrieben von Dr. Yordan Balabanov. Alle Rechte vorbehalten.