Crontab при запуске cron.php выдает ошибку:
PHP Fatal error: Call to undefined function: drupal_bootstrap() in /home/m/mysite/public_html/cron.php on line 14
В чем может быть проблема?
Какая версия Drupal? Кажется, что-то меняли в формате вызова bootstrap при переходе к 5.0.
Посмотрите, есть файл \includes\bootstrap.inc, в котором определена функция drupal_bootstrap()?
Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы?
хостинг требует вставки строки #!/usr/local/bin/php для обработчика скрипта, плюс одна пустая для читабельности
итого в 14 строке: drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
на самом деле cron не дергается даже в ручную, я об этом спрашивал вчера здесь http://www.drupal.ru/node/4140, но ответов не было, пришлось запускать crontab для прояснения ситуации, он хоть логи отсылает
>> хостинг требует вставки строки #!/usr/local/bin/php для обработчика скрипта
>Я в этом мало что понимаю, но странно - это надо для обработки php?
да, путь обработчика скрипта нужно прописывать явно
>> Call to undefined function: drupal_bootstrap()
>Стало быть не срабатывает include_once './includes/bootstrap.inc'; (судя по сообщению об ошибке). Может быть, вызывать cron шелл-скриптом - см. /scripts
это понятно, вопрос в том почему не срабатывает
а какой смысл запускать скрипт через шелл, если проблема в самом скрипте, cron не срабатывает даже при дёргании напрямую типа www.mysite.com/cron.php (выявлено эмпирически)
koyra (не проверено)
3 марта 2007 в 21:54
а база данных в UTF8?
файлы которые редактировали сохранили в UTF8?
да, все в UTF8 (нахлебался я на старом хостинге с другими кодировками)
база заполнялась заново через админку, так что с этим все в порядке
редактировались только файлы стилей и шаблоны, код не трогал
Столкнулся с подобной штукой.
Дело в том, что у моего хостера нет возможностей вызывать wget/curl/lynx (как предлагается в руководстве по установке drupal). Поэтому я пробовал изменять файл cron.php (добавлять в начало строку #!/usr/local/bin/php) по совету хостера же.
При таком раскладе получаю именно ту же самую:
Call to undefined function: drupal_bootstrap()
Также пробовал запускать через непосредственный вызов интерпретатора php с указанием скрипта в качестве параметра. Та же ошибка вылазиет.
Решение проблемы оказалось (в моём случае) в том, что если я решил вызывать php-скрипт локально (прямо на сервере), тогда мне нужно корректно указывать рабочую папку для вызова скрипта.
Правильная строка запуска для cron'а в таком случае получается следующей:
cd ~/имя_юзера/public_html && /usr/local/bin/php ~/имя_юзера/public_html/cron.php
Такой метод сработал.
Комментарии
Какая версия Drupal? Кажется, что-то меняли в формате вызова bootstrap при переходе к 5.0.
Посмотрите, есть файл \includes\bootstrap.inc, в котором определена функция drupal_bootstrap()?
друпал 5.1
не апгрейженный, а установленный с нуля
изменений в код не вносилось, окромя дизайна
Хм. В моем cron.php вообще 12 строк, откуда ошибка в 14 строке?
Возможно, файл непреднамеренно редактировался. Попробуйте заменить прикрепленным (только переименуйте в cron.php).
хостинг требует вставки строки #!/usr/local/bin/php для обработчика скрипта, плюс одна пустая для читабельности
итого в 14 строке: drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
на самом деле cron не дергается даже в ручную, я об этом спрашивал вчера здесь http://www.drupal.ru/node/4140, но ответов не было, пришлось запускать crontab для прояснения ситуации, он хоть логи отсылает
> хостинг требует вставки строки #!/usr/local/bin/php для обработчика скрипта
Я в этом мало что понимаю, но странно - это надо для обработки php?
> Call to undefined function: drupal_bootstrap()
Стало быть не срабатывает include_once './includes/bootstrap.inc'; (судя по сообщению об ошибке).
Может быть, вызывать cron шелл-скриптом - см. /scripts
>> хостинг требует вставки строки #!/usr/local/bin/php для обработчика скрипта
>Я в этом мало что понимаю, но странно - это надо для обработки php?
да, путь обработчика скрипта нужно прописывать явно
>> Call to undefined function: drupal_bootstrap()
>Стало быть не срабатывает include_once './includes/bootstrap.inc'; (судя по сообщению об ошибке). Может быть, вызывать cron шелл-скриптом - см. /scripts
это понятно, вопрос в том почему не срабатывает
а какой смысл запускать скрипт через шелл, если проблема в самом скрипте, cron не срабатывает даже при дёргании напрямую типа www.mysite.com/cron.php (выявлено эмпирически)
а база данных в UTF8?
файлы которые редактировали сохранили в UTF8?
да, все в UTF8 (нахлебался я на старом хостинге с другими кодировками)
база заполнялась заново через админку, так что с этим все в порядке
редактировались только файлы стилей и шаблоны, код не трогал
А что за хрень? Два раза из-за плохой связи запостился комментарий, а удалить его нельзя! Неправильно!
Столкнулся с подобной штукой.
Дело в том, что у моего хостера нет возможностей вызывать wget/curl/lynx (как предлагается в руководстве по установке drupal). Поэтому я пробовал изменять файл cron.php (добавлять в начало строку #!/usr/local/bin/php) по совету хостера же.
При таком раскладе получаю именно ту же самую:
Call to undefined function: drupal_bootstrap()
Также пробовал запускать через непосредственный вызов интерпретатора php с указанием скрипта в качестве параметра. Та же ошибка вылазиет.
Решение проблемы оказалось (в моём случае) в том, что если я решил вызывать php-скрипт локально (прямо на сервере), тогда мне нужно корректно указывать рабочую папку для вызова скрипта.
Правильная строка запуска для cron'а в таком случае получается следующей:
cd ~/имя_юзера/public_html && /usr/local/bin/php ~/имя_юзера/public_html/cron.php
Такой метод сработал.
Исходник я подсмотрел здесь: http://forum.nic.ru/showthread.php?t=675