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.htaccessweb.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.