Не попасть в админку (вернее 500 ошибка)
Работая в админке, и меняя ресурсы, вдруг неожиданно выкинуло на 500 ошибку.(при чем это только в случае авторизации, то есть админку показывает, если ты не авторизован(саму панель входа)). MODX 2.5.2
Сервер пишет следующее в лог
Прошу помочь понять, в чем причина.
Сервер пишет следующее в лог
[Fri Feb 10 17:25:47.667081 2017] [:error] [pid 6542] [client 178.66.106.98:46839] PHP Fatal error: Call to a member function getObject() on string in /var/www/goldholod/data/www/goldholod.com/core/cache/includes/elements/modplugin/2.include.cache.php on line 10
Содержимое файла<?php
switch ($modx->event->name) {
case 'OnManagerPageBeforeRender':
if ($modx->hasPermission('error_log_view')) {
$modx->controller->addLexiconTopic('controlerrorlog:default');
$modx->controller->addCss($modx->getOption('assets_url').'components/controlerrorlog/css/mgr/main.css');
$modx->controller->addJavascript($modx->getOption('assets_url').'components/controlerrorlog/js/mgr/cel.default.js');
$response = $modx->runProcessor('mgr/errorlog/get', array('includeContent'=>false), array('processors_path' => $modx->getOption('core_path') . 'components/controlerrorlog/processors/'));
$resObj = $response->getObject();
$_html = "<script> var cel_config = " . $modx->toJSON($resObj) . "; </script>";
$modx->controller->addHtml($_html);
}
break;
case 'OnHandleRequest':
$email = $modx->getOption('controlerrorlog.admin_email');
if ($modx->context->get('key') == 'mgr' || empty($email) || !$modx->getOption('controlerrorlog.control_frontend')) return;
$f = $modx->getOption(xPDO::OPT_CACHE_PATH) . 'logs/error.log';
if (file_exists($f)) {
$casheHash = $modx->cacheManager->get('error_log');
$hash = md5_file($f);
if (filesize($f) > 0 && !empty($casheHash) && $casheHash != $hash) {
$modx->lexicon->load('controlerrorlog:default');
/** @var modPHPMailer $mail */
$mail = $modx->getService('mail', 'mail.modPHPMailer');
$mail->setHTML(true);
$mail->set(modMail::MAIL_SUBJECT, $modx->lexicon('error_log_email_subject'));
$mail->set(modMail::MAIL_BODY, $modx->lexicon('error_log_email_body', array('siteName' => $modx->config['site_name'])));
$mail->set(modMail::MAIL_SENDER, $modx->getOption('emailsender'));
$mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
$mail->address('to', $email);
$mail->address('reply-to', $modx->getOption('emailsender'));
if (!$mail->send()) {
print ('An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$mail->reset();
}
if ($casheHash != $hash) {
$modx->cacheManager->set('error_log', $hash, 0);
}
}
break;
}
return;
Полностью так же очищал руками кеш в coreПрошу помочь понять, в чем причина.
Комментарии: 6
Видимо что-то не так с процессором — например, нету его там.
Нужно отключить плагин. Для этого открыть файл core/cache/includes/elements/plugins/10.include.cache.php и закомментировать весь код.
Нужно отключить плагин. Для этого открыть файл core/cache/includes/elements/plugins/10.include.cache.php и закомментировать весь код.
Большое спасибо!
Помогло такое решение, НО это же костыль, а как теперь выявить в чем причина, что бы такое более не возникло?
Помогло такое решение, НО это же костыль, а как теперь выявить в чем причина, что бы такое более не возникло?
Проверить наличие процессора. Я так понимаю, с какого-то момента возникла эта ошибка, значит было какое-то действие. Если процессора нет, то нужно переустановить компонент controlErrorLog.
Советую временно отключить этот плагин в админке до момента решения проблемы, так как при сохранении любого объекта или страницы кэш будет перезаписан и опять придется лезть в файл и комментировать.
П.С. Вообще неплохо было бы проверить журнал ошибок.
Советую временно отключить этот плагин в админке до момента решения проблемы, так как при сохранении любого объекта или страницы кэш будет перезаписан и опять придется лезть в файл и комментировать.
П.С. Вообще неплохо было бы проверить журнал ошибок.
Спасибо за советы, проблему решили. Суть была в том, что ранее controlErrorLog был удален, но производили после чего частичное восстановление системы, базу восстановили, а файлы оставили как есть(то ест ьвернее их уже не было), вот он и ругался.
Такая же проблема. При попытке обновления controlErrorLog он не обновился. При попытке деинсталлировать и установить заново — ошибка 500.
Кеш, конечно, пробовала очистить.
В логе:
Кеш, конечно, пробовала очистить.
В логе:
(ERROR @ /var/www/admin/data/www/ru-bezh.ru/core/model/modx/modx.class.php : 1766) Processor /var/www/admin/data/www/ru-bezh.ru/core/components/controlerrorlog/processors/mgr/get.php does not exist; Array
(
[processors_path] => /var/www/admin/data/www/ru-bezh.ru/core/components/controlerrorlog/processors/
)
Как я понимаю, нет процессора. Но как его без админки восстановить-то?
Решено. Скачать с github.com/sergant210/controlErrorLog )
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.