Physicist
Support Team
   
Репутация: +179/-0
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 исправлена проблема, связанная с возможным удалением файлов в корне сайта.
|
|
|
|
« Последнее редактирование: 09.02.2009, 13:20:01 от Physicist »
|
Записан
|
|
|
|
| |
|
dynamit
|
 |
« Ответ #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
Сообщений: 81
|
 |
« Ответ #32 : 06.04.2010, 09:22:56 » |
|
а такой вопрос: у меня на сайте в настройках вообще кеширование выключено. Это плохо или хорошо. расскажите.
|
|
|
|
|
Записан
|
|
|
|
kaizer
Захожу иногда

Репутация: +0/-0
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
Сообщений: 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
Пол: 
Сообщений: 1154
Рябов Денис
|
 |
« Ответ #35 : 21.04.2010, 19:56:58 » |
|
spc-файлы создаются библиотекой SimplePie, но создаются они стандартным способом и никаких проблем с правами быть не должно. Даже не знаю, чем тут помочь.
PS. Мамбот автоматической очистки кеша всё-равно удаляет из кэша только файлы с расширением php.
|
|
|
|
|
Записан
|
|
|
|
kaizer
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 18
|
 |
« Ответ #36 : 21.04.2010, 20:11:54 » |
|
прописал этим файлам разрешение 777, новости вроде как обновились, но глюк не вылез. посмотрим, что будет дальше. а ваш плагин на Joomla 1.5.14 есть смысл ставить? конфликта не будет?
|
|
|
|
|
Записан
|
|
|
|
Physicist
Support Team
   
Репутация: +179/-0
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
Сообщений: 18
|
 |
« Ответ #38 : 21.04.2010, 20:59:25 » |
|
переписал на 666, только если они в кеше и всё равно находятся там для удаления, почему 777 нельзя ставить, каким боком это может вылезти?
поставил плагин на хостинг, вроде всё пока фунциклирует.
в любом случае спасибо за отклик и с меня +
|
|
|
|
« Последнее редактирование: 21.04.2010, 21:07:32 от kaizer »
|
Записан
|
|
|
|
Physicist
Support Team
   
Репутация: +179/-0
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
Сообщений: 18
|
 |
« Ответ #40 : 22.04.2010, 16:44:36 » |
|
Проблема вроде ушла, но не понятно в следствии чего? то ли от того, что 666 прописал, то ли плагин работает. Но судя по тому, что в папке "кеша" находились файлы со вчерашнего дня, хотя кеширование задано в 1 час, то можно сделать вывод, что плагин в joomla1.5.14 скорей всего не работает. Также граббер новостей обновил инфу во фронтенде только после принудительной очистки кеша. Может этот плагин надо использовать совместно со встроенным плагином -Система-Кеш, хотя он вроде как для браузера. Плагин Ситема-Кеш-он вообще нужен? Если нужен, то должно ли его время кеширования совпадать со временем кеширования в самой системе? Если вопросы тупые, то не обессудьте, я только в начале пути.
|
|
|
|
|
Записан
|
|
|
|
|
jem777
|
 |
« Ответ #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
Сообщений: 92
|
 |
« Ответ #42 : 10.12.2010, 17:12:47 » |
|
Спасибо за мамбот )) По-ходу я сам используя паука для создания сайт-мэпа завалил свой сайт, ибо кэш вырос нереально и оперативки у хостинга отожрал в три раза больше положенного максимума (
|
|
|
|
|
Записан
|
|
|
|
dimko300
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 52
|
 |
« Ответ #43 : 29.12.2010, 20:51:43 » |
|
Спасибо за плагин! Тоже мучался с этой проблемой, приходилось ручками через ФТП чистить! Пока работает, дальше посмотрим... Только не понятно почему кэш через б/д не работает в Joomla, только через файл?...
|
|
|
|
|
Записан
|
|
|
|
diks13
Давно я тут
  
Репутация: +6/-0
Offline
Пол: 
Сообщений: 235
Куплю материнскую плату для ноутбука Acer 5530G
|
 |
« Ответ #44 : 12.03.2011, 17:02:19 » |
|
что-то у меня не очищает кеш, использую мамбот неделю а кеш увеличился до гигантских размеров.
|
|
|
|
|
Записан
|
|
|
|
diks13
Давно я тут
  
Репутация: +6/-0
Offline
Пол: 
Сообщений: 235
Куплю материнскую плату для ноутбука Acer 5530G
|
 |
« Ответ #45 : 29.03.2011, 07:22:50 » |
|
после удаления этого замечательного мамбота сайт открывался белой страницей.восстановил бэкапом. использую CacheCleaner-v1.6.2 пока что все хорошо и быстрый доступ к очистке
|
|
|
|
|
Записан
|
|
|
|
BlackDragon
Захожу иногда

Репутация: +1/-0
Offline
Пол: 
Сообщений: 17
|
 |
« Ответ #46 : 04.04.2011, 09:51:09 » |
|
Для быстрой очистки кэша пришлось немного подправить функцию, чтобы он при каждом обращении к сайту стирал все указанные файлы в папке кэша:
может не по теме, что дописать что б удалялись все файлы с расширением png (превьюшки) из папки tmp ?
|
|
|
|
« Последнее редактирование: 07.04.2011, 07:09:44 от BlackDragon »
|
Записан
|
|
|
|
|