LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 21:23:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 [2]  Все   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Мамбот автоматической очистки кеша в Joomla!  (Прочитано 20479 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Physicist
Support Team
*****

Репутация: +179/-0
Offline Offline

Пол: Мужской
Сообщений: 1154


Рябов Денис


« : 02.06.2008, 12:46:29 »

На многих хостингах ограничено дисковое пространство под сайт, а с увеличением объема контента на сайте папка /cache имеет тенденцию значительно увеличиваться в своем размере. При этом бóльшая часть файлов в кеше уже давно устарела, но она просто не удаляется автоматически. В результате может возникнуть ситуация, когда не удается установить новое расширение или даже внести изменения в БД по причине нехватки свободного дискового пространства. Чтобы избежать такой проблемы, был написан простенький мамбот, который очищает папку /cache от устаревших файлов примерно при каждом 100-м обращении к сайту. На время генерации страницы это никак не влияет, т.к. все действия выполняются после того, как страница отдана пользователю.

Ниже выложены файлы:
botClearCache.zip — для версии Joomla!1.0
plgClearCache.zip — для версии Joomla!1.5

09.02.2009 В версии для 1.5 исправлена проблема, связанная с возможным удалением файлов в корне сайта.

* botClearCache.zip (0.93 Кб - загружено 460 раз.)
* plgClearCache.zip (1.1 Кб - загружено 946 раз.)
« Последнее редактирование: 09.02.2009, 13:20:01 от Physicist » Записан
 
dynamit
Практически профи
*******

Репутация: +195/-0
Offline Offline

Пол: Мужской
Сообщений: 1645


how low?


« Ответ #31 : 03.03.2010, 23:20:19 »

Спасибо за мамбот, нужный. Но есть масенький вопросик - файлы рнр удаляет без проблем, но у меня там еще и ".php_expire" их не трогает. вес у них маленький, но все же. Их ручками делитить? Или можо так -
в               
if((strpos($file,'.cache')      ===strlen($file)-6) ||               
(strpos($file,'.php')        ===strlen($file)-4))

добавить
if((strpos($file,'.cache')      ===strlen($file)-6) ||               
(strpos($file,'.php')        ===strlen($file)-4) ||                  
(strpos($file,'.php_expire') ===strlen($file)-11))
« Последнее редактирование: 04.03.2010, 12:28:07 от alex0013 » Записан
monkozzz
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 81



« Ответ #32 : 06.04.2010, 09:22:56 »

а такой вопрос: у меня на сайте в настройках вообще кеширование выключено. Это плохо или хорошо. расскажите.
Записан
kaizer
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #33 : 21.04.2010, 14:01:09 »

Всем доброго времени суток. Для импорта новостей пробовал разные расширения, в том числе и штатный стоящий в Joomla 1.5, везде один и тот же результат. Перед перечнем новостей выходит вот это сообщение:

Warning: file_put_contents(/usr/home/web/....../.........ru/cache/0f3abc7ae96a25695f10675d60d0d082.spc) [function.file-put-contents]: failed to open stream: Permission denied in /usr/home/web/......./.........ru/libraries/simplepie/simplepie.php  on line 7219
Warning: /usr/home/web/....../.........ru/cache/0f3abc7ae96a25695f10675d60d0d082.spc is not writeable in /usr/home/web/...../..........ru/libraries/simplepie/simplepie.php on line 1623

удаляется только после принудительной очистки кэша совместно с удалением кэша на самом хостинге.
Рарешениия 777 уже наверно везде поставил, пробовал менять время кэширования, всё равно вылазит это сообщение.
Может надо вообще кэширование системы отключить? Может, кто знает как победить эту проблему?
За ранее благодарен.

Задавал этот вопрос в других ветках (про RSS). Никто не отвечает-либо вопрос тупой, либо никто не знает, что делать. Я знаю одно, что кеш не очищается. Может быть этот плагин и есть решение моей проблемы?
Записан
kaizer
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #34 : 21.04.2010, 18:17:58 »

для импорта ленты новостей на страницу использую mod_slick_rss-1-5-0 (время кеширования 3600с), этот компонент поставил т.к хотел уйти от аналогичой проблемы при работе на штатном модуле стоящем в Joomla_1.5.14-Stable-Full_Package-Russian. Заметил, что на хостинге у папки cache разрешение с 777 слетало на ХХХ. Хостер вроде у себя что-то подправил
и теперь всегда 777 стоит. Но эти два файла, стоящие всегда отдельно, не удаляются. Только принудительно. Хостер говорит проблема с движком, т.к у него всё работает нормально, апачи пишет и т.д.... Причём расширения mod_grabber_1.4.5_J1.5 и RSS_Scroller_1_5. таких сообщений не выдаёт, хотя RSS_Scroller выводит ленту новостей созданную в самой joomla.  
 "тип файла" при этом, у двух этих файлов, определяется как "сертификаты RKCS#7"-может здесь собака зарылась?

Этот глюк имеет место только на хостинге, в денвере (локальном сервере) всё работает отлично.

тем не менее поставил на localhost, вроде ни чего не слетело. стоит вопрос - можно ли поставить этот плагин уже на хостинг с Joomla_1.5.14-Stable-Full_Package-Russian?
« Последнее редактирование: 21.04.2010, 18:50:46 от kaizer » Записан
Physicist
Support Team
*****

Репутация: +179/-0
Offline Offline

Пол: Мужской
Сообщений: 1154


Рябов Денис


« Ответ #35 : 21.04.2010, 19:56:58 »

spc-файлы создаются библиотекой SimplePie, но создаются они стандартным способом и никаких проблем с правами быть не должно. Даже не знаю, чем тут помочь.

PS. Мамбот автоматической очистки кеша всё-равно удаляет из кэша только файлы с расширением php.
Записан
kaizer
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #36 : 21.04.2010, 20:11:54 »

прописал этим файлам разрешение 777, новости вроде как обновились, но глюк не вылез. посмотрим, что будет дальше.
а ваш плагин на Joomla 1.5.14 есть смысл ставить? конфликта не будет?
Записан
Physicist
Support Team
*****

Репутация: +179/-0
Offline Offline

Пол: Мужской
Сообщений: 1154


Рябов Денис


« Ответ #37 : 21.04.2010, 20:39:17 »

прописал этим файлам разрешение 777, новости вроде как обновились, но глюк не вылез. посмотрим, что будет дальше.
а ваш плагин на Joomla 1.5.14 есть смысл ставить? конфликта не будет?

Задания для файлов прав 777 — это одна из самых частых ошибок. Файлам нужно задавать максимум 666.
« Последнее редактирование: 21.04.2010, 21:13:10 от Physicist » Записан
kaizer
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #38 : 21.04.2010, 20:59:25 »

переписал на 666, только если они в кеше и всё равно находятся там для удаления, почему 777 нельзя ставить, каким боком это может вылезти?

поставил плагин на хостинг, вроде всё пока фунциклирует.

в любом случае спасибо за отклик и с меня +
« Последнее редактирование: 21.04.2010, 21:07:32 от kaizer » Записан
Physicist
Support Team
*****

Репутация: +179/-0
Offline Offline

Пол: Мужской
Сообщений: 1154


Рябов Денис


« Ответ #39 : 21.04.2010, 21:12:39 »

переписал на 666, только если они в кеше и всё равно находятся там для удаления, почему 777 нельзя ставить, каким боком это может вылезти?

Несколько раз встречал, что при задании файлу прав на исполнение PHP начинает вести себя с ним странным образом, при изменении на 666 всё возвращалось в норму.

PS. Если кто знает, отчего такое может быть — отпишитесь.
« Последнее редактирование: 21.04.2010, 21:55:58 от Physicist » Записан
kaizer
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #40 : 22.04.2010, 16:44:36 »

Проблема вроде ушла, но не понятно в следствии чего? то ли от того, что 666 прописал, то ли плагин работает. Но судя по тому, что в папке "кеша" находились файлы со вчерашнего дня, хотя кеширование задано в 1 час,  то можно сделать вывод, что плагин в joomla1.5.14 скорей всего не работает. Также граббер новостей обновил инфу во фронтенде только после принудительной очистки кеша. Может этот плагин надо использовать совместно со встроенным плагином -Система-Кеш, хотя он вроде как для браузера.
Плагин Ситема-Кеш-он вообще нужен? Если нужен, то должно ли его время кеширования совпадать  со временем кеширования в самой системе?
Если вопросы тупые, то не обессудьте, я только в начале пути.
Записан
jem777
Практически профи
*******

Репутация: +112/-2
Offline Offline

Сообщений: 1765



« Ответ #41 : 05.10.2010, 10:15:55 »

Для быстрой очистки кэша пришлось немного подправить функцию, чтобы он при каждом обращении к сайту стирал все указанные файлы в папке кэша:

Код:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

class plgSystemClearcache extends JPlugin
{
function plgSystemCache(&$subject, $config)
{
parent::__construct($subject, $config);
}
function onAfterInitialise()
{
global $mainframe;
if($mainframe->isAdmin())
return;
if(mt_rand(1,1)==1)
register_shutdown_function('ClearOldCacheOnShutdown');
}
}

function ClearOldCacheOnShutdown()
{
flush();
$cacheDir=JPATH_BASE.DS.'cache'.DS;
if(!($dh=opendir($cacheDir)))
return;
$conf=&JFactory::getConfig();
$refreshTime=time()-$conf->getValue('config.cachetime');
while($group=readdir($dh))
if(is_dir($cacheDir.$group)&&($group!='.')&&($group!='..'))
{
$group=$cacheDir.$group.DS;
if($dh2=opendir($group))
while($file=readdir($dh2))
if((strpos($file,'.cache')===strlen($file)-6) ||
   (strpos($file,'.php')  ===strlen($file)-4) ||
   (strpos ($file,'.php_expire') ===strlen($file)-11))
{
$file=$group.$file;
if(is_file($file)&&(@filemtime($file)<$refreshTime))
@unlink($file);
}
}
}

?>

Кроме того пришлось указать дополнительное расширение, а именно пустые файлы с расширением .php_expire - после чего скрипт за несколько минут очистил всю папку кэша, в которой находилось несколько тысяч файлов.

Неплохо бы эту тему в FAQ занести? А то по поиску его не нашел.
« Последнее редактирование: 05.10.2010, 10:20:28 от jem777 » Записан
Kriks
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 92


« Ответ #42 : 10.12.2010, 17:12:47 »

Спасибо за мамбот ))
По-ходу я сам используя паука для создания сайт-мэпа завалил свой сайт, ибо кэш вырос нереально и оперативки у хостинга отожрал в три раза больше положенного максимума (
Записан
dimko300
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 52


« Ответ #43 : 29.12.2010, 20:51:43 »

Спасибо за плагин! Тоже мучался с этой проблемой, приходилось ручками через ФТП чистить! Пока работает, дальше посмотрим... Только не понятно почему кэш через б/д не работает в Joomla, только через файл?...
Записан
diks13
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 235


Куплю материнскую плату для ноутбука Acer 5530G


« Ответ #44 : 12.03.2011, 17:02:19 »

что-то у меня не очищает кеш, использую мамбот неделю а кеш  увеличился до гигантских размеров.
Записан
diks13
Давно я тут
****

Репутация: +6/-0
Offline Offline

Пол: Мужской
Сообщений: 235


Куплю материнскую плату для ноутбука Acer 5530G


« Ответ #45 : 29.03.2011, 07:22:50 »

после удаления этого замечательного мамбота сайт открывался белой страницей.восстановил бэкапом. использую CacheCleaner-v1.6.2 пока что все хорошо и быстрый доступ к очистке
Записан
BlackDragon
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 17



« Ответ #46 : 04.04.2011, 09:51:09 »

Для быстрой очистки кэша пришлось немного подправить функцию, чтобы он при каждом обращении к сайту стирал все указанные файлы в папке кэша:
может не по теме,
что дописать что б удалялись все файлы с расширением png (превьюшки) из папки tmp ?
« Последнее редактирование: 07.04.2011, 07:09:44 от BlackDragon » Записан
Страниц: 1 [2]  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet