Коллеги, через 1,5 мес. после запуска сайта перестал запускаться крон
В отчете о состоянии выдается "Ошибка запуска Cron". Установил автозапуск у хостера... на почту приходят логи: "PHP Fatal error: Call to undefined function: drupal_bootstrap() in /home/public_html/cron.php on line 11"
Файлы не модифицировались.
Друпал 6-й.
Хостинг: Apache/2.0.58 (Unix) mod_ssl/2.0.58 OpenSSL/0.9.8d mod_dp/lk.0.20.0 PHP/5.2.6 Памяти 128 Мб.
Поискал на drupal.org, есть похожие проблемы под 5-ку, но ответов нет. Подскажите, в чем может быть проблема?
Комментарии
Начнем операцию по удалению.
Судя по всему вы запускаете напрямую "/home/public_html/cron.php"
В папке scripts есть шел-скрипты для запуска крона.
Сделайте вызов одного из этих скриптов.
Они открывают cron.php через веб-сервер, не напрямую и он (cron.php) получает правильные пути и правильно инклюдит все нужные файлы.
Выбор скрипта зависит от того, что есть у хостера wget или lynx.
Проверить это можно так:
# which lynx
Вы должны увидеть путь к скрипту, если он установлен.
Спасибо за отклик!
Инструкция из панели хостера:
"Время, интервал
Минуты могут быть от 0 до 59
Часы могут быть от 0 до 23
День месяца может быть от 1 до 31
Месяц может быть 1 до 12
День недели может быть от 0 до 7 (0 или 7 - воскресенье)
Можно конфигурировать CRONTAB для выполнения задач не только в определенное время, но и ежеминутно, ежечасно, ежедневно, еженедельно или ежемесячно, используя комбинацию */x
Пример:
*/5 * * * * - запускать команду каждые пять минут
0 */3 * * * - запускать каждые три часа
0 12,13,14 * * * - запускать команду каждый час с 12 до 14
Команда
Необходимо задать путь до скрипта от домашнего каталога
Например: public_html/cgi-bin/script.pl
Cистема сама подставит символ ~/ (эта комбинация заменяет полный путь)
Получится: ~/public_html/cgi-bin/script.pl
Если в конце пути поставить символ &, то скрипт будет работать в фоновом режиме. Установка этого символа необязательна.
Вот примеры правильной записи в CRONTAB:
* * * * * ~/public_html/cgi-bin/script.pl - запускать программу script.pl каждую минуту
0 0 * * * ~/public_html/cgi-bin/script.pl - запускать программу script.pl в полночь каждый день
Права на файл должны быть 705. CGI-скрипт должен располагаться в папке CGI-BIN. Первая строка в файле должна выглядеть так: #!/usr/bin/perl - это путь к интерпретатору.
Как запустить PHP-скрипт?
Задайте в PHP-файле путь к интерпретатору: #!/usr/local/bin/php (первая строка в файле). Установите на файл права 705.
Вот пример правильной записи:
0 0 * * 1 ~/public_html/myscripts/somescript.php - запускать программу somescript.php в ночь с воскресения на понедельник"
Соответственно я прописываю: 0 0 * * 1 ~/public_html/cron.php
Права назначил, в файл cron.php дописал #!/usr/local/bin/php
В логах "PHP Fatal error: Call to undefined function: drupal_bootstrap() in /home/public_html/cron.php on line 11"
Непонятно откуда ошибка Хостер говорит - обращайтесь к разработчикам цмс
А почему вы тогда не пишете Дрису Байтаерту?
Он является самым что главным разработчиком цмс!!!
VladSavitsky же написал...
смотрим...
так оно и есть! БИНГО! это в корне неверно.
Владислав, профессионально поставил диагноз и даже написал как нужно лечить. А ты рецепт проигнорировал и пытаешься на него как-то наезжать.
Перечитай еще раз его пост, или переспроси, если что в совете непонятно. Я думаю, он ответит. )
http://drupalcookbook.ru/recept/zapusk-hronometra-cron
Да читал я это все... От этого не легче... Вообще стараюсь спрашивать, когда не в состоянии найти информацию самостоятельно
Я уже ответил на ваш вопрос.
А решать ваши проблемы должны вы сами.
Кроме того, я достаточно подробно описать способы запуска в статье Запуск хронометра (cron), которую упомянул Dan.
Всем спасибо за ответы в любом случае... не понятно с чего агрессия? Я вроде очень вежливо задал вопрос ...
А вы мне не ответили.
oos_s,
у меня такая же панель управления. ты разобрался с кроном?
Здравствуйте! Проблема та же, cron при запуске выдает сообщение всегда, Ошибка запуска Cron. ясно вполне что он слетает из-за какого-то модуля, вопрос как отловить этот модуль?
на странице: http://anyks.com/admin/reports/status всегда висит сообщение:
Выполнение регулярных процедур (задачи cron) Последний запуск 3 недели 8 часов назад
Крон давно не запускался. Подробная информация находится в документации по настройке, на странице настройки работы крона. Вы можете запустить выполнение регулярных процедур (cron) вручную.
пробовал отловить модуль как написано здесь: http://www.drupal.ru/node/9732
но так и не въехал где должна появится новая категория "cron_runs" в журнале, ниче там не появилось...
Как запускаете хрон? Вручную или cron на сервере? На локале хрон запускается?
Отключайте модули по паре штук и смотрите когда заработает.
Либо ошиблись, ли хрон у вас не доходит до обработки хуков.
насчет логов, оказывается хостер не дает к ним доступ и сказал что не даст, только писать ему время он выдаст на это время какие записи в логах идут...
Крон запускается в ручную только есть набрать: http://my_site.com/cron.php если запускать из админки то выдает ошибку.
вот что сказал хостер:
Здравствуйте.
Что бы иметь к данному файлу доступ, Вам нужен root доступ, котроый никто не предоставит, ниже скинули лог
---
[Mon Nov 16 10:24:04 2009] [error] [client 92.55.39.59] client denied by server configuration: /home/anyksco/public_html/cron.php
[Mon Nov 16 10:24:04 2009] [error] [client 92.55.39.59] client denied by server configuration: /home/anyksco/public_html/cron.php
----
Как говорится нифига не в тему! Крон в основном не работает из-за модуля проверки наличия обновлений, примечательно что данная система на локальном компьютере работает без проблем и крон и обновления а на хостинге нет, может памяти на php не хватает хотя там выделили 64Мб в остальном больше незнаю что еще может быть
В логах друпала надо смотреть (это я про http://www.drupal.ru/node/9732), а не веб-сервера.
При чём тут /home/anyksco/public_html/cron.php? Крон должен дёргаться через http, а не напрямую.
Может не хватать времени.
Я читал эту статью, где эти логи друпала? я не нашел...
на странице: admin/settings/logging/syslog только настройки а где сами логи хранятся понятия не имею уже все обыскал
если запустить крон как: http://my_site.com/cron.php он запускается а если из админки то выдает ошибку...
Как Вы это поняли? Обновляется время последнего запуска на странице /admin/reports/status?
/admin/reports/dblog
Должен быть включен модуль "Database logging".
Я не наезжал я просто не понял ответа, в /admin/reports/status там время последнего запуска стоит еще с середины октября
Про Database logging я не знал, сейчас включу и посмотрю что будет
Спасибо! теперь понятно где эта статистика, что я и спрашивал...
В журнале записывается
«Попытка перезапуска выполнения регулярных процедур (cron) в то время, как они уже выполняются.»
и cron уже второй день не может запустится...
есть мнения?
Мне помогло отключение XML SiteMap 2 dev. Подвешивал.
Есть. Поиск.
нужно убить переменную "cron_semaphore".
либо редактором переменных из модуля devel
либо в ручную в таблице drup_variable удалить строчку от этой переменной.
на самом деле странный глюк.
Что-то я не нашел эту переменную в таблице *_variable, она что появляется только когда cron начинает глючить?
Да, эта переменная означает, что хрон глючит
.
помогло отключение poormancron.
спасибо огромное, это было спасением
z
/
Всем добрый день, у меня аналогичная проблема...
Database logging - модуля я такого не нашел
cron зависает на отправке рассылки, если в нем не стоит материала на отправку, то проходит все нормально
удаление cron_semaphore не помогает
cron_last приводит к тому, что появляется надпись крон - никогда не запускался