Устойчивость блоголёта к ошибкам
12.09.2009Выложил новую версию с расширенным обработчиком ошибок - теперь в админке на странице настройки/безопасность появилась галочка выводить ошибки, а иначе на почту. Ошибки копятся целый час, а потом лог ошибок отсылается почтой. Также ведется один большой лог ошибок. Логи находятся в папке data/domain/logs/. В связи с этим внесены некоторые изменения в другие классы.
Выложил скрипт, который чистит базу ссылок - если ранее удаляли рубрики и метки, то могли в базе остаться ссылки, скрипт удаляет эти ссылки. Скачать отсюда:
http://litepublisher.googlecode.com/svn/trunk/utils/cleartags.php
Запускается традиционно - набрать адрес скрипта в браузере.
Также исправил мелкие ошибки в плагинах, особенно в трекере поисковых фраз - ошибка блокировала отправку комментариев. Так что обновляйтесь.
← Ранее Перехват исключительных ситуаций в блоголёте
Позже Изменения в sitemap →
Комментарии (21) на запись “Устойчивость блоголёта к ошибкам”
Оставить комментарий
Все равно не хочет обновлять сайтмап:
Fatal error: Uncaught exception 'Exception' with message 'category not exists!' /lib/kernel.php:55
Stack trace:
0 /lib/kernel.php(848): TDataClass->Error('category not ex...')
1 /lib/commontags.php(130): TUrlmap->AddSubNode('category', '111', 'TCategories', 2)
2 /cleartags.php(9): TCommonTags->AddUrl(2, '/category/111...')
3 /cleartags.php(15): clearlinks(Object(TCategories))
4 {main}
thrown in /lib/kernel.php on line 55
И ещё вопрос. Чтобы запретить Яндексу (а заодно и другим ПС) индексировать теги, достаточно в robots.txt приписать к уже имеющимся строку
Disallow: /tag/
Или что-то ещё? Яндекс поймёт, что туда заходить не надо? А то у меня есть подозрение, что блоги вылетели из-за дублированного контента, созданного метками.
Кстати, имхо, индексировать метки (/tag/) очень полезно. В этом их смысл, вообще-то - много релевантного контента и ссылок по кейворду такому-то. Если Яндекс сейчас их не учитывает для ранжирования, то обязательно будет учитывать в будущем, как гугль.
Вообще, имхо, в борьбе с дуплицированным контентом значительно больше вреда чем пользы.
То есть для очистки надо обновиться и заново скачать скрипт - вчера в нем были ошибки. Скрипт тестировал - отрабатывает без ошибок, но только на новой версии.
Для robots.txt действительно достаточно этой строки, в блоголёте есть режим лайт, когда страницы меток и рубрик состоят из простынки ссылок на посты без анонсов.Также есть лайт версия темы по умолчанию, в которой отсутствуют метки в шаблонах, и следовательно на сайте просто отсутствуют ссылки на метки и ничего запрещать не нужно. Я сам использую метки, но пока сайт не получил определенное доверие в поисковиках их можно использовать но аккуратно, а как только колво контнта перерастен некую границу, то можно иметь сколько угодно дублированного контента - лишь бы на сайте появлялся регуляроно новый, но не всегдаобязательно.
Значить что где то недообновился, ошибка была в старом файле urlmapclass.php, новая редакция, в которой не выдается это ошибки:
http://litepublisher.googlecode.com/svn/trunk/lib/urlmapclass.php
залить его в lib, также вероятно лучше залить файл
http://litepublisher.googlecode.com/svn/trunk/lib/commontags.php
навсякий случай - в новой версии все эти фалы обновлены, и совместно работают, скрипт выдает по окончании finished, может быть тебе страница из кеша браузера выдается?
У меня commontags.php и urlmapclass.php теже что и в svn, перезалил их, не помогло.
Сделал бэкап и восстановил на денвере (версия блоголета 2.63), запустил cleartags.php,выдает ту же ошибку.
Может urlmap.php руками поправить?
Содержимое urlmap.php:
{s:8:"category";a:4:
{s:2:"id";i:1;s:5:"class";s:11:"TCategories";s:3:"arg";i:0;s:5:"items";a:3:{s:7:"novosti";a:3:
{s:2:"id";i:39;s:5:"class";s:11:"TCategories";s:3:"arg";i:1;}s:5:"new1";a:3:
{s:2:"id";i:45;s:5:"class";s:11:"TCategories";s:3:"arg";i:2;}s:14:"new2";a:3:
{s:2:"id";i:51;s:5:"class";s:11:"TCategories";s:3:"arg";i:4;}}}
s:3:"tag";a:4:
{s:2:"id";i:17;s:5:"class";s:5:"TTags";s:3:"arg";i:0;s:5:"items";a:4:{s:4:"blog";a:3:
{s:2:"id";i:40;s:5:"class";s:5:"TTags";s:3:"arg";i:1;}s:9:"blogolyot";a:3:
{s:2:"id";i:41;s:5:"class";s:5:"TTags";s:3:"arg";i:2;}s:9:"metka1";a:3:
{s:2:"id";i:46;s:5:"class";s:5:"TTags";s:3:"arg";i:3;}s:14:"metka2";a:3:
{s:2:"id";i:52;s:5:"class";s:5:"TTags";s:3:"arg";i:4;}}}
Удалена категрия novosti и метки blog, blogolyot.
Более чем странная ошибка - она специально была поставлена в старых версиях, в новой редаккции заменена строкой
public function AddSubNode($nodeurl, $url, $class, $arg) {
if (!isset($this->tree[$nodeurl])) $this->AddNode($nodeurl, $class, null);
так сейчас, а была строка с Error(".. not exists");
kernel.php:
public function AddSubNode($nodeurl, $url, $class, $arg) {
if (!isset($this->tree[$nodeurl])) $this->Error("$nodeurl not exists!");
if (!isset($this->tree[$nodeurl]['items'])) $this->tree[$nodeurl]['items'] = array();
return $this->AddItem($this->tree[$nodeurl]['items'], $url, $class, $arg);
}
urlmapclass.php
public function AddSubNode($nodeurl, $url, $class, $arg) {
if (!isset($this->tree[$nodeurl])) $this->AddNode($nodeurl, $class, null);
if (!isset($this->tree[$nodeurl]['items'])) $this->tree[$nodeurl]['items'] = array();
return $this->AddItem($this->tree[$nodeurl]['items'], $url, $class, $arg);
}
<loc>http://site.runewcat</loc>
Прошу проверить дистрибутив на работоспособность, пока обновлялся, весь мозг поломал, пока не додумался поставить с 0 на денвер - итог все равно один 55 ошибка...
Как обычно, програмеры и конечные пользователи в разных реальностях.
Помогите пожалуйста
Попыталась скачать новую версию выдало Fatal error: Call to a member function GetPath() on a non-object in /home/marblog/domains/elevenmin.ru/public_html/lib/classes.php on line 5 и теперь не могу открыть блог
1. Почему то перестала создаваться резервная копия, при ручном резервировании пишет
Файл «C:\DOCUME~1\9226~1\LOCALS~1\Temp\kPImGRsk.zip.part» не может быть сохранён, так как исходный файл не может быть прочтён.(это уже давно так последняя копия приходила на ящик 28.09)
Подождите некоторое время и попробуйте снова или обратитесь к администратору сервера.
Это уже недели 2 так.Версия: 2.53
2.В сайтбаре названия рубрик отображаются как $title
при смене темы не помагает.
блог http://www.elevenmin.ru
Все правильно - уже как месяц произошла смена ядра. Обнови в корне сайта index.php на новую версию, а в браузере набери
http://www.elevenmin.ru/admin/service/?update=1
и пару раз обнови страницу.