TemplinTech™ Cache Cleaner е безплатен Console Plugin за CMS Joomla!®, предназначен за автоматизирано и контролирано почистване на основната Joomla! cache директория чрез системен cron job.
Текуща версия: 1.0.2
Тип: Joomla! Console Plugin
Съвместимост: Joomla! 6.x
Минимална PHP версия: PHP 8.3
Автор: Dr. Yordan Balabanov
Уебсайт: https://templintech.com
Лиценз: GNU General Public License version 2 or later
Статус: Stable
1. Предназначение
TemplinTech™ Cache Cleaner автоматизира периодичното почистване на основната Joomla! директория /cache. Плъгинът е предназначен за Joomla! сайтове, при които администраторът желае кешът да бъде почистван регулярно чрез cron, без необходимост от ръчно влизане в административния панел.
Плъгинът използва стандартната Joomla! Console инфраструктура и стандартния Joomla! CLI entry point:
cli/joomla.php
Основната команда на плъгина е:
templintech:cache-cleaner:run
TemplinTech™ Cache Cleaner не използва собствен публичен PHP endpoint, URL за отдалечено стартиране, AJAX endpoint или „secret URL“. Изпълнението се извършва от сървъра чрез PHP CLI.
2. Основен принцип на работа
При TemplinTech™ Cache Cleaner има две отделни настройки, които не трябва да се объркват:
- Cron интервалът определя колко често сървърът стартира плъгина.
- Cleanup Interval определя колко често кешът действително трябва да бъде почистван.
Препоръчителната конфигурация е cron job да стартира плъгина на всеки 5 минути, а администраторът да определя реалния интервал за почистване в Joomla!.
Cron: на всеки 5 минути
Cleanup Interval: 1 час
В този случай cron стартира Joomla! командата на всеки 5 минути. Плъгинът проверява кога е било последното успешно почистване. Ако един час все още не е изминал, той приключва без да изтрива нищо. Ако интервалът е изтекъл, кешът се почиства.
2.1. Защо този модел е използван
Този модел позволява cron job да бъде конфигуриран на хостинга само веднъж. След това администраторът може да променя реалния интервал за почистване директно от Joomla!, без да редактира cron настройката в hosting control panel.
2.2. Важното правило
Важно: Cron job не може да осигури по-често изпълнение, отколкото позволява собственият му график.
Например:
Cron: веднъж дневно
Cleanup Interval: 1 час
В този случай кешът няма да бъде почистван на всеки час. Плъгинът се стартира само веднъж дневно и следователно може да почисти кеша максимум веднъж дневно.
Практическото правило е: cron интервалът трябва да бъде равен или по-кратък от избрания Cleanup Interval.
3. Какво точно почиства плъгинът
TemplinTech™ Cache Cleaner работи единствено с основната Joomla! cache директория:
JPATH_ROOT/cache
Обичайно това е директорията:
/cache
Плъгинът не позволява на администратора да задава произволен filesystem path.
Не могат да бъдат задавани директории като:
/administrator/images/media/tmp/home/public_html/- друга произволна директория.
Security: Ограничението до Joomla! root /cache е умишлено. То намалява риска от погрешно или злонамерено задаване на filesystem target.
4. Какво не почиства TemplinTech™ Cache Cleaner
Плъгинът не е универсален server cache manager и не почиства автоматично:
- browser cache;
- CDN cache;
- Cloudflare cache;
- reverse proxy cache;
- Varnish;
- PHP OPcache;
- Redis;
- Memcached;
- кешове на hosting platform;
- други директории извън Joomla! root
/cache.
Ако сайтът използва допълнителна caching инфраструктура, тя трябва да бъде управлявана отделно.
5. Системни изисквания
- Joomla!: 6.x
- PHP: 8.3 или по-нова версия
- Среда: hosting среда, която позволява изпълнение на Joomla! чрез PHP CLI
- Scheduler: cron или еквивалентен server-side scheduler
5.1. PHP за сайта и PHP за cron не винаги са едно и също
PHP версията, използвана от уеб сървъра за зареждане на Joomla!, може да бъде различна от PHP версията, която cron използва при изпълнение на командата:
php
Ако сайтът работи с PHP 8.4, а cron използва по-стара PHP версия, трябва да бъде зададен абсолютният път до правилния PHP CLI binary.
6. Инсталация
6.1. Инсталиране на пакета
Инсталирайте:
plg_console_templintechcachecleaner-1.0.2.zip
В Joomla! администрацията отворете:
System → Install → Extensions
Качете ZIP файла и завършете стандартната инсталация.
6.2. Активиране на плъгина
След инсталацията отворете:
System → Manage → Plugins
Потърсете TemplinTech™ Cache Cleaner, отворете плъгина, изберете желания Cleanup Interval, активирайте го и запазете настройките.
7. Налични интервали
- 5 минути;
- 10 минути;
- 15 минути;
- 30 минути;
- 1 час;
- 2 часа;
- 4 часа;
- 6 часа;
- 12 часа;
- 1 ден;
- 1 седмица.
Стойността по подразбиране е 1 час.
7.1. Защита срещу невалидна стойност
Плъгинът приема само предварително дефинираните стойности. Ако поради ръчна промяна на базата данни или повредена конфигурация бъде зададена неподдържана стойност, TemplinTech™ Cache Cleaner използва безопасната стойност по подразбиране:
3600 секунди / 1 час
8. Cron информацията в настройките на плъгина
TemplinTech™ Cache Cleaner генерира необходимата cron информация директно в Joomla! backend.
Администраторът вижда:
- Cache target
- CLI path
- Cron command
- Crontab line
- Status command
- Dry-run command
- Force command
8.1. Cache target
Това е директорията, която ще бъде почиствана.
/home/customer/www/example.com/public_html/cache
Тази стойност е информационна и не трябва да се въвежда като cron команда.
8.2. CLI path
Това е абсолютният filesystem path до стандартния Joomla! CLI entry point.
/home/customer/www/example.com/public_html/cli/joomla.php
8.3. Cron command
Това е командата, която трябва да бъде поставена в поле с име например Command, Command to Run, Befehl, Cron Command или Task Command.
php '/home/customer/www/example.com/public_html/cli/joomla.php' templintech:cache-cleaner:run --quiet
8.4. Crontab line
Това е целият cron ред, включващ едновременно графика и командата.
*/5 * * * * php '/home/customer/www/example.com/public_html/cli/joomla.php' templintech:cache-cleaner:run --quiet >/dev/null 2>&1
Важно: Не поставяйте целия Crontab Line в поле „Command“, ако hosting панелът има отделни полета за Minute, Hour, Day, Month и Weekday.
9. Препоръчителна cron конфигурация
Когато hosting средата позволява, препоръчителният cron schedule е:
*/5 * * * *
Това означава: стартирай командата на всеки 5 минути.
9.1. При hosting панел с отделни cron полета
Minute: */5
Hour: *
Day: *
Month: *
Weekday: *
Command:
php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
Важно: Използвайте абсолютния filesystem path, показан от TemplinTech™ Cache Cleaner. Не използвайте URL адрес като https://example.com/cli/joomla.php.
10. Какво да копирате и какво да не копирате
10.1. Ако хостингът има отделни полета за времето
Използвайте отделните cron стойности и копирайте само Cron Command в полето Command.
10.2. Ако хостингът приема целия crontab ред
Използвайте директно стойността Crontab Line, показана в плъгина.
10.3. Не копирайте примерния path от тази документация
Пътища като:
/home/user/public_html/cli/joomla.php
са само примери. Използвайте пътя, който TemplinTech™ Cache Cleaner показва във вашия Joomla! backend.
11. PHP CLI binary
TemplinTech™ Cache Cleaner генерира команда, започваща с:
php
При много хостинги това е достатъчно. При други трябва да замените началното php с абсолютния PHP CLI binary.
Например:
/usr/local/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
12. Първи тест преди създаване на cron
12.1. Status
php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --status
Тази команда не изтрива файлове.
12.2. Dry run
php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force --dry-run
Dry run симулира почистването, без действително да изтрива файлове или директории.
12.3. Force
php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force
Тази команда извършва незабавно реално почистване независимо от зададения интервал.
13. CLI опции
13.1. Нормално изпълнение
templintech:cache-cleaner:run
Плъгинът проверява интервала и почиства само ако е настъпило времето за следващо почистване.
13.2. --quiet
--quiet намалява ненужния CLI output при автоматично cron изпълнение.
13.3. --status
--status показва текущото състояние, без да изтрива файлове.
13.4. --force
--force стартира почистването веднага, без да изчаква конфигурирания интервал. Security проверките остават активни.
13.5. --dry-run
--dry-run симулира почистването, без да изтрива файлове и без да актуализира last-run state.
14. Първо автоматично изпълнение
Ако плъгинът никога не е изпълняван и няма записано последно успешно почистване, първото нормално cron стартиране се счита за дължимо.
Не е необходимо да изчаквате целия избран Cleanup Interval след инсталацията.
15. Файлове, които се запазват
TemplinTech™ Cache Cleaner не изтрива самата Joomla! /cache директория.
В root нивото се запазват:
index.html.htaccessweb.config.gitignore.gitkeep.templintechcachecleaner.state.json.templintechcachecleaner.lock
16. State файл
TemplinTech™ Cache Cleaner използва локален state файл:
/cache/.templintechcachecleaner.state.json
Той съдържа ограничена техническа информация за последното успешно изпълнение, например версия, timestamp, брой премахнати файлове, брой премахнати директории и приблизително освободено пространство.
State файлът не съдържа потребителски акаунти, имейл адреси, IP адреси, cookies, пароли, database credentials или visitor tracking информация.
Максималният допустим размер на state файла е 16384 bytes.
17. Lock файл и паралелно изпълнение
Плъгинът използва:
/cache/.templintechcachecleaner.lock
за предотвратяване на едновременно изпълнение от повече от един cron процес.
Ако един процес вече извършва cleanup, вторият приключва безопасно и не започва паралелно почистване.
17.1. Stale lock
Ако cron процес бъде прекъснат аварийно и lock файл остане на диска, версия 1.0.2 приема lock-а за остарял след:
21600 секунди / 6 часа
18. Security модел
TemplinTech™ Cache Cleaner извършва операции върху filesystem и затова използва консервативен security модел.
Основен принцип: ако плъгинът не може да потвърди, че filesystem target-ът е безопасен, операцията се прекратява.
18.1. Няма потребителски задаван filesystem target
Пътят за почистване не може да бъде подаден чрез GET, POST, URL, CLI parameter, административно текстово поле или environment variable.
18.2. Проверка на Joomla! /cache
Преди почистване плъгинът проверява дали директорията съществува, дали е реална директория, дали не е symbolic link и дали resolved path съвпада с очакваната Joomla! root cache директория.
18.3. Symbolic links
Ако самата Joomla! root /cache директория е symbolic link, плъгинът отказва изпълнение.
Ако symbolic link бъде открит вътре в cache tree, неговият target не се следва.
18.4. TOCTOU hardening
Версия 1.0.2 включва допълнителни проверки срещу filesystem Time-of-check to time-of-use ситуации. Преди критични операции се проверяват отново parent path, filesystem object type, device, inode и resolved location.
18.5. Защита на state файла
State информацията се записва чрез временен уникален файл и atomic rename вместо чрез небезопасно директно презаписване.
18.6. File permissions
Operational файловете се ограничават до owner-only permissions 0600, когато операционната система го поддържа.
18.7. Няма публичен cron URL
Security: Не създавайте публичен PHP файл или URL endpoint само за да заобиколите ограничение на hosting scheduler.
19. Privacy
TemplinTech™ Cache Cleaner не използва собствен tracking механизъм и не събира или изпраща към TemplinTech IP адреси, browser fingerprints, analytics, потребителски акаунти, имейл адреси, visitor identifiers или съдържание на Joomla! кеша.
Runtime state се съхранява локално на сървъра.
Стандартната Joomla! Extension Update функционалност може да осъществява заявка към официалния TemplinTech update endpoint за проверка за нова версия.
20. Joomla! Update System
TemplinTech™ Cache Cleaner използва стандартния Joomla! Update System за проверка и разпространение на бъдещи версии.
Официален update feed:
https://templintech.com/joomlaextensions/updates/templintechcachecleaner.xml
Официален changelog:
https://templintech.com/joomlaextensions/updates/templintechcachecleaner-changelog.xml
Публична страница:
https://templintech.com/extensions/templintechcachecleaner
Release packages:
https://templintech.com/joomlaextensions/downloads/templintechcachecleaner/
21. Package integrity
TemplinTech update metadata може да съдържа криптографски checksums за release пакета, включително:
- SHA-256;
- SHA-384;
- SHA-512.
Те служат за проверка на целостта на изтегления update package.
22. Joomla! 7
TemplinTech™ Cache Cleaner 1.0.2 е официално деклариран за Joomla! 6.x.
Архитектурата е изградена със съвременния Joomla! extension модел, включително namespace, dependency injection, Joomla! Console и Symfony Console инфраструктура.
Това не представлява декларация за официална Joomla! 7 съвместимост преди реална Joomla! 7 release версия да бъде налична за compatibility testing.
23. Архитектура
- Joomla! Console Plugin architecture;
- PSR-4 namespace;
- Joomla! dependency injection service provider;
- Joomla! Registry за plugin parameters;
- стандартния Joomla!
cli/joomla.phpentry point; - Symfony Console command infrastructure;
- PHP attributes;
- strict PHP types.
Основен namespace:
TemplinTech\Plugin\Console\TemplinTechCacheCleaner
Extension element: templintechcachecleaner
Plugin group: console
24. Поддържани езици
- български —
bg-BG; - английски —
en-GB; - немски —
de-DE.
25. Производителност
TemplinTech™ Cache Cleaner не извършва filesystem cleanup при нормално frontend посещение на Joomla! сайта. Cleanup процесът се стартира чрез Joomla! CLI от cron.
Това означава, че обикновено посещение на frontend страница не стартира директно процеса по почистване.
26. Препоръчителна production конфигурация
Cron: на всеки 5 минути
Cleanup Interval: 1 час
Това не означава изтриване на cache на всеки 5 минути. Cron проверява на всеки 5 минути, а реалното почистване е приблизително веднъж на час.
27. Настройване при shared hosting
Следващите инструкции са предназначени и за потребители без опит с cron.
Важно: Няма универсален cron интерфейс за всички hosting компании. При някои доставчици има cPanel, при други собствен панел, а при трети shared hosting пакетите не позволяват изпълнение на произволни CLI команди.
27.1. Основните стойности
CLI Path — абсолютният път до Joomla! cli/joomla.php.
Cron Command — командата без времевия график.
Crontab Line — графикът и командата в един ред.
Cleanup Interval — колко често TemplinTech™ Cache Cleaner действително трябва да почиства кеша.
27.2. Най-честата грешка
Ако hosting интерфейсът има отделни полета Minute, Hour, Day, Month, Weekday и Command, не поставяйте */5 * * * * в полето Command.
27.3. Втората най-честа грешка
Не използвайте URL адрес до Joomla! CLI.
Неправилно:
https://example.com/cli/joomla.php
Правилно:
/home/account/example.com/public_html/cli/joomla.php
28. cPanel — универсална настройка
Отворете:
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
Път: Websites → Dashboard → Cron Jobs
Type: Custom
Schedule:
*/5 * * * *
Command:
php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
Hostinger използва UTC за cron schedule. При изпълнение на всеки 5 минути това няма практическо значение.
30. SiteGround
Път: Site Tools → Devs → Cron Jobs
Задайте изпълнение на всеки 5 минути и поставете „Cron Command“ от TemplinTech™ Cache Cleaner.
Ако SiteGround показва конкретен PHP CLI binary, използвайте него вместо началното php.
31. Bluehost
Път: Websites → Manage Site → Cron Jobs или cPanel → Advanced → Cron Jobs
Minute: */5
Hour: *
Day: *
Month: *
Weekday: *
В Command поставете генерирания от плъгина Cron Command.
32. HostGator
Път: cPanel → Advanced → Cron Jobs
Използвайте schedule:
*/5 * * * *
В Command използвайте PHP 8.3+ CLI binary и генерирания Joomla! CLI path.
33. DreamHost
DreamHost използва version-specific PHP CLI binaries.
Примери:
/usr/local/php83/bin/php/usr/local/php84/bin/php
Примерна команда:
/usr/local/php84/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
34. GoDaddy Web Hosting с cPanel
Път: Web Hosting → Manage → cPanel Admin → Advanced → Cron Jobs
Примерен PHP binary:
/usr/local/bin/php
Примерна команда:
/usr/local/bin/php -q '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
35. Namecheap Shared Hosting
Път: cPanel → Advanced → Cron Jobs
Namecheap Shared Hosting не трябва да бъде конфигуриран с cron интервал по-кратък от 5 минути.
Подходящ schedule:
*/5 * * * *
36. InMotion Hosting
Път: cPanel → Cron Jobs
Използвайте schedule */5 * * * * и поставете Cron Command от TemplinTech™ Cache Cleaner.
37. GreenGeeks
Път: Manage → Dev Tools → Cron Jobs
Използвайте schedule:
*/5 * * * *
В command полето поставете Cron Command от плъгина.
38. FastComet
Път: cPanel → Cron Jobs
Minute: */5
Hour: *
Day: *
Month: *
Weekday: *
39. HostArmada
Път: cPanel → Advanced → Cron Jobs
Използвайте schedule */5 * * * * и Cron Command от плъгина.
40. ScalaHosting
40.1. SPanel
Отворете Cron Jobs или Cron Jobs Manager.
Schedule:
*/5 * * * *
В Cron Command поставете стойността от TemplinTech™ Cache Cleaner.
40.2. cPanel
Ако акаунтът използва cPanel, следвайте стандартните cPanel инструкции.
41. Krystal Hosting
Път: cPanel → Advanced → Cron Jobs
Примерен PHP binary:
/usr/local/bin/php
Пример:
/usr/local/bin/php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
42. hosting.com / бивши A2 Hosting акаунти
Път: cPanel → Advanced → Cron Jobs
При част от shared hosting средите минималният cron интервал може да бъде 15 минути.
В такъв случай използвайте:
*/15 * * * *
и изберете Cleanup Interval 15 минути или повече.
43. Hetzner Web Hosting / konsoleH
Път: Services / Einstellungen → Cronjob Manager
Използвайте PHP interpreter, който отговаря на PHP версията на Joomla!.
Ако interpreter се избира отделно, в command полето използвайте Joomla! CLI path и аргументите:
'/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
За schedule използвайте, когато планът позволява:
*/5 * * * *
44. webgo
Път: Vertragsübersicht → Cronjobs
За minute-level cron може да е необходимо използване на Webspace Admin.
Minuten: */5
Stunden: *
Tag: *
Monat: *
Wochentag: *
При version-specific PHP CLI binary командата може да изглежда например така:
/usr/bin/php83 '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
45. mittwald
При среда, която позволява отделен interpreter и arguments:
Interpreter: PHP
Файл: /REAL/PATH/cli/joomla.php
Arguments: templintech:cache-cleaner:run --quiet
Schedule: */5 * * * *
46. STRATO
46.1. STRATO Legacy hosting platform
При legacy пакети с Cron Jobs може да се използва server-side PHP execution.
Примерна основа:
/bin/php -f '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
46.2. STRATO New Hosting Platform
Важно: Ако конкретният STRATO hosting plan не предоставя Cron Jobs или CLI scheduler, автоматичният режим на TemplinTech™ Cache Cleaner не може да бъде използван по предназначения начин.
Не създавайте публичен PHP endpoint като заобиколно решение.
47. IONOS
При IONOS трябва да се провери дали конкретният hosting продукт предоставя реално PHP CLI cron изпълнение.
Ако Cron Job Manager приема само URL адрес, той не е директно съвместим с CLI-only архитектурата на TemplinTech™ Cache Cleaner.
Security: Не създавайте публичен cache-cleaner.php само за да превърнете CLI плъгина в URL cron задача.
48. OVHcloud Web Hosting
При стандартния OVHcloud Web Hosting scheduler може да има ограничения както в минималния интервал, така и в начина на подаване на аргументи към PHP script.
Ако scheduler позволява изпълнение само веднъж на час, изберете Cleanup Interval 1 час или повече.
Самото изпълнение на:
cli/joomla.php
не е достатъчно. Scheduler-ът трябва да може да подаде и:
templintech:cache-cleaner:run
49. Сравнение на hosting ограниченията
Hostinger: подходящ при Custom cron command.
SiteGround: подходящ чрез Site Tools Cron Jobs.
Bluehost: подходящ при наличен PHP 8.3+ CLI cron.
HostGator: подходящ при наличен PHP 8.3+ CLI binary.
DreamHost: подходящ; има version-specific PHP CLI binaries.
GoDaddy cPanel: подходящ.
Namecheap: подходящ при спазване на минималния cron interval.
InMotion Hosting: подходящ чрез cPanel.
GreenGeeks: подходящ.
FastComet: подходящ.
HostArmada: подходящ.
ScalaHosting: подходящ при SPanel/cPanel с CLI cron.
Krystal: подходящ чрез cPanel.
hosting.com: подходящ, но може да има минимален интервал 15 минути.
Hetzner: подходящ чрез Cronjob Manager.
webgo: подходящ при налична подходяща cron честота.
mittwald: подходящ при PHP interpreter cron job.
STRATO: зависи от конкретната hosting платформа и plan.
IONOS: URL-only scheduler не е директно съвместим.
OVHcloud: трябва да се провери възможност за пълни CLI arguments.
50. Ако вашият хостинг не е в списъка
Потърсете меню с име:
- Cron Jobs;
- Scheduled Tasks;
- Scheduler;
- Task Scheduler;
- Geplante Aufgaben;
- Cronjobs.
След това проверете дали интерфейсът позволява изпълнение на команда от типа:
php /path/to/script.php argument
Ако scheduler-ът приема само URL адрес, той не е достатъчен за директно стартиране на TemplinTech™ Cache Cleaner.
51. Ако хостингът не позволява 5-минутен cron
Ако най-краткият разрешен интервал е 15 минути:
Cron: на всеки 15 минути
Cleanup Interval: 15 минути или повече
Ако най-краткият разрешен интервал е 1 час:
Cron: веднъж на час
Cleanup Interval: 1 час или повече
52. Проверка на PHP CLI версията
Ако имате SSH или Terminal:
php -v
Ако използвате абсолютен binary:
/usr/local/bin/php -v
TemplinTech™ Cache Cleaner 1.0.2 изисква PHP 8.3 или по-нова версия.
53. Командата работи ръчно, но не работи през cron
Най-честите причини са:
- cron използва различен PHP binary;
- cron използва различна PHP версия;
- PATH environment е различен;
- filesystem user е различен;
- абсолютният Joomla! path е неправилен;
- PHP CLI няма права за запис в
/cache; - hosting provider ограничава CLI execution;
- cron command съдържа shell syntax, която конкретният панел не приема.
54. Грешка „php: command not found“
Ако получите:
php: command not found
използвайте абсолютния PHP CLI binary, предоставен от hosting provider.
55. Joomla! не разпознава командата
Ако Joomla! не разпознава:
templintech:cache-cleaner:run
проверете дали плъгинът е инсталиран, активиран, дали използвате правилния Joomla! cli/joomla.php и дали PHP CLI версията е съвместима.
56. Permission error
Ако PHP CLI user няма необходимите права върху Joomla! /cache, не задавайте автоматично:
0777 не е препоръчително универсално решение.
Проверете owner, group, PHP CLI user и правилните filesystem permissions.
57. „Another process is already running“
Съобщението:
Skipped: another TemplinTech Cache Cleaner process is already running.
обикновено не означава дефект. Друг process вече държи cleanup lock.
58. „Cleanup interval has not elapsed“
Това е нормално поведение. Cron е стартирал плъгина, но все още не е настъпило времето за следващото реално почистване.
59. Cache директорията не съществува
Ако Joomla! root /cache в момента не съществува, плъгинът няма какво да почисти и това не се третира автоматично като критична грешка.
60. Cron email известия
Много hosting панели могат да изпращат email при всяко cron изпълнение. Това е полезно по време на първоначалното тестване.
След успешен тест можете да използвате:
--quiet
и при подходящ shell:
>/dev/null 2>&1
61. Препоръчителна процедура за начинаещи
Стъпка 1: Инсталирайте TemplinTech™ Cache Cleaner.
Стъпка 2: Активирайте плъгина.
Стъпка 3: Оставете Cleanup Interval на 1 час.
Стъпка 4: Намерете Cron Setup в настройките.
Стъпка 5: Копирайте Cron Command.
Стъпка 6: Отворете Cron Jobs / Scheduled Tasks в hosting control panel.
Стъпка 7: Задайте cron на всеки 5 минути, ако hosting plan го позволява.
Стъпка 8: Поставете Cron Command в полето Command.
Стъпка 9: Запазете cron job-а.
Стъпка 10: Проверете резултата чрез Status Command.
62. Backup преди първо използване
Cache файловете по своя характер са временни, но преди внедряване на нов extension в production среда е разумно да имате актуален backup.
Използвайте първо:
--force --dry-run
преди реалното:
--force
63. Деинсталиране
TemplinTech™ Cache Cleaner може да бъде деинсталиран чрез стандартния Joomla! Extension Manager.
Важно: След деинсталирането трябва ръчно да премахнете съответния cron job от hosting control panel. Joomla! не управлява cron задачите на външния hosting provider.
63.1. Runtime файлове
След окончателно деинсталиране могат да останат:
/cache/.templintechcachecleaner.state.json/cache/.templintechcachecleaner.lock
Те могат да бъдат премахнати ръчно след окончателно деинсталиране на плъгина.
64. Upgrade
Не е необходимо предишната версия да бъде деинсталирана преди update.
TemplinTech™ Cache Cleaner използва Joomla! upgrade механизма и Joomla! Update System. При нормален update съществуващата конфигурация се запазва.
65. Changelog за версия 1.0.2
Security
- допълнително hardened filesystem traversal;
- защита срещу symbolic-link substitution;
- допълнителна TOCTOU защита;
- atomic exclusive lock creation;
- filesystem identity validation;
- защита на state path;
- ограничени operational file permissions, когато се поддържат.
Configuration
- whitelist на позволените Cleanup Interval стойности;
- окончателни TemplinTech Joomla! Update System endpoints.
66. Често задавани въпроси
Трябва ли cron задължително да бъде на всеки 5 минути?
Не. Това е препоръчителната конфигурация, когато hosting provider я позволява.
Ако Cleanup Interval е 1 час, защо cron трябва да стартира на всеки 5 минути?
За да може плъгинът сам да управлява реалния интервал и промяната му да не изисква редактиране на cron.
Ще се чисти ли кешът на всеки 5 минути?
Не, освен ако изрично не сте избрали Cleanup Interval 5 минути.
Мога ли да задам друга директория?
Не. Версия 1.0.2 умишлено работи само с Joomla! root /cache.
Изтрива ли самата /cache директория?
Не.
Изтрива ли root index.html?
Не.
Следва ли symbolic links?
Не.
Има ли публичен URL за стартиране?
Не.
Изпраща ли cache съдържание към TemplinTech?
Не.
Нужен ли е download key?
Не за текущото безплатно разпространение.
Може ли да работи без cron?
CLI командите могат да бъдат стартирани ръчно, но автоматичното периодично почистване изисква cron или друг подходящ server-side scheduler.
Може ли външен web cron service да го стартира?
Не директно. Плъгинът умишлено не предоставя публичен HTTP endpoint.
Какво става, ако хостингът позволява cron само веднъж на час?
Задайте Cleanup Interval 1 час или повече.
Какво става, ако хостингът позволява cron минимум на 15 минути?
Използвайте cron на 15 минути и Cleanup Interval 15 минути или повече.
67. Бърза справка
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
Незабавно почистване
php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --force
Нормално cron изпълнение
php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet
Препоръчителен crontab
*/5 * * * * php '/REAL/PATH/cli/joomla.php' templintech:cache-cleaner:run --quiet >/dev/null 2>&1
68. Информация за поддръжка
При технически проблем е полезно да разполагате със следната информация:
- Joomla! версия;
- TemplinTech™ Cache Cleaner версия;
- PHP версия на сайта;
- PHP CLI версия;
- hosting provider;
- hosting plan;
- използвана cron команда;
- избран Cleanup Interval;
- резултат от Status Command;
- точният CLI error output.
Не публикувайте публично: hosting passwords, Joomla! administrator passwords, database passwords, SSH private keys, API keys или други credentials.
69. Лиценз и авторство
TemplinTech™ Cache Cleaner се разпространява под:
GNU General Public License version 2 or later.
Безплатното разпространение на софтуера не премахва авторските права върху оригиналния код.
Автор: Dr. Yordan Balabanov
Copyright: Copyright (C) 2026 Dr. Yordan Balabanov.
Уебсайт: https://templintech.com
70. TemplinTech™ Cache Cleaner
TemplinTech™ Cache Cleaner е безплатен Joomla! Console Plugin за контролирано и автоматизирано почистване на основната Joomla! cache директория чрез server-side cron job.
Плъгинът е разработен с приоритет върху ясна конфигурация, ограничен filesystem scope, CLI-only execution, безопасно паралелно изпълнение, filesystem hardening и съвременна Joomla! extension архитектура.
Developed by Dr. Yordan Balabanov.
Copyright (C) 2026 Dr. Yordan Balabanov.
Licensed under GNU General Public License version 2 or later.
71. Търговски марки
TemplinTech™ и TemplinTech™ Cache Cleaner се използват като продуктови и търговски означения на Dr. Yordan Balabanov.
Joomla!® е регистрирана търговска марка на Open Source Matters, Inc. в Съединените щати и други държави.
TemplinTech™ Cache Cleaner е независимо разработено разширение и не е част от, не се поддържа от и не се одобрява от Open Source Matters, Inc. или Joomla! Project.
Използването на наименованието Joomla! в тази документация е описателно и обозначава съвместимостта и предназначението на разширението.