supercron.php - Fehlermeldung bei externem cron [gelöst]
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 20.01.2010 - 22:47 Uhr in
Hallo,
ich nutze supercron.php und versuche das Skript per cron aufzurufen, was allerdings nicht klappen will. Ein Aufruf über den Browser geht ohne Probleme.
Mein cronjob sendet mir folgende Fehlermeldung:
Warning: require_once(./includes/cache.inc): failed to open stream: No such file or directory in /is/htdocs/wpxxx/www/drupal/includes/bootstrap.inc on line 1009
Fatal error: require_once(): Failed opening required './includes/cache.inc' (include_path='.:/usr/share/pear/php5') in /is/htdocs/wpxxx/www/drupal/includes/bootstrap.inc on line 1009
Ich habe supercron.php auf 755 gesetzt.
Ich interpretiere die Fehlermeldung so, dass der include_path falsch ist... Wie kann ich den ändern? Oder liegt der Fehler an anderer Stelle?
Gruß,
macjack
- Anmelden oder Registrieren um Kommentare zu schreiben
Fehler
am 21.01.2010 - 09:11 Uhr
Funktioniert denn sonst alles auf der Seite (inkl. der normalen cron.php)?
Wenn ja würde ich mal ganz stark auf einen Fehler bei supercron tippen.
Stefan
--
Sei nett zu Deinem Themer!
supercron.php und cron.php mit der gleichen Fehlermeldung
am 21.01.2010 - 14:32 Uhr
Hallo Stefan,
nein, es funktioniert nicht alles auf der Seite (siehe meine anderen Beiträge). Es sind noch einige Baustellen.
Bei supercron.php bin ich einen Schritt weiter. Ich hatte bei meinen Experimenten den Pfad anders definiert (was bei der Ausführung innerhalb Drupals auch funktionierte). Ich habe den Pfad nun ebenso gesetzt wie in cron.php:
include_once './includes/bootstrap.inc';
Jetzt habe ich allerdings einmal supercron über die URL im Browser aufgerufen und erhalte folgende Fehlermeldung:
#!/usr/local/bin/php
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /is/htdocs/xxx/www/drupal/cron.php:2) in /is/htdocs/xxx/www/drupal/includes/bootstrap.inc on line 1037
Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/xxx/www/drupal/cron.php:2) in /is/htdocs/xxx/www/drupal/includes/bootstrap.inc on line 636
Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/xxx/www/drupal/cron.php:2) in /is/htdocs/xxx/www/drupal/includes/bootstrap.inc on line 637
Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/xxx/www/drupal/cron.php:2) in /is/htdocs/xxx/www/drupal/includes/bootstrap.inc on line 638
Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/xxx/www/drupal/cron.php:2) in /is/htdocs/xxx/www/drupal/includes/bootstrap.inc on line 639
Bei der Gelegenheit habe ich auch cron.php einmal auf diese Weise aufgerufen und musste / konnte feststellen, dass cron.php exakt die gleiche Fehlermeldung ausgibt.
Einen Fehler in supercron.php schließe ich daher aus. Ich habe ein wenig mit Zugriffsrechten probiert und "Benutzer" und "Gruppe" der Dateien auf "meine Pakatnummer beim Host" und "ftponly" gesetzt. Ich kenne die Auswirkungen von "Benutzer" und "Gruppe" auf die Ausführbarkeit von php nicht. Vielleicht ist kein Zusammenhang.
Maik
Hallo, inzwischen ein wenig
am 21.01.2010 - 16:13 Uhr
Hallo,
inzwischen ein wenig weiter:
Habe gerausgefunden, dass der shebang "#!/usr/local/bin/php" in der Datei zu diesen Fehlermeldungen führt, wenn man das Skript im Browser aufruft. Mein Cron-Tab braucht allerdings das Shebang. Ich habe nun zwei Versionen von supercron.php (ohne Shebang zum Aufruf aus Drupal und im Browser) und supercron2.php mit Shebang, um sie durch Cron-Tab aufrufen zu können.
supercron2.php hat 755 und liefert nun eine andere Fehlermeldung (per Cron Daemon Mail):
Warning: include_once(./includes/bootstrap.inc): failed to open stream: No such file or directory in /is/htdocs/xxx/www/drupal/supercronjob.php on line 9
Warning: include_once(): Failed opening './includes/bootstrap.inc' for inclusion (include_path='.:/usr/share/pear/php5') in /is/htdocs/xxx/www/drupal/supercronjob.php on line 9
Fatal error: Call to undefined function drupal_bootstrap() in /is/htdocs/xxx/www/drupal/supercronjob.php on line 10
Dein Crontab sollte die
am 21.01.2010 - 16:29 Uhr
Dein Crontab sollte die Shebang nicht benötigen. Die cron.php ist für den Aufruf über einen Browser gedacht, im Crontab sollte der Aufruf also nicht direkt erfolgen, sondern mit Hilfe von Lynx oder eventuell wget:
* * * * * lynx -dump "http://www.example.org/cron.php" > dev/null
Dann benötigst du auch keine shebang in der cron.php bzw. der supercron.php (die übrigens beide im root-Verzeichnis von Drupal liegen sollten, sonst funktioniert das includieren der Dateien auch nicht.)
bspellmeyer schrieb * * * *
am 21.01.2010 - 16:59 Uhr
* * * * * lynx -dump "http://www.example.org/cron.php" > dev/null
OT! Sorry, wenn ich mich hier mal reindränge, aber ich habe noch keine Lösung zu meinem CRON Problem hier gefunden ...
Eine Zwischenfrage: was ist denn der Unterschied zu dem geposteten CRONTAB, zu WGET, das ich bisher genutzt habe?
Mein bisheriger CRONTAB:
* * * * * wget -q http://www.example.com/cron.php > /dev/null
Thoor schrieb bspellmeyer
am 21.01.2010 - 17:45 Uhr
* * * * * lynx -dump "http://www.example.org/cron.php" > dev/null
OT! Sorry, wenn ich mich hier mal reindränge, aber ich habe noch keine Lösung zu meinem CRON Problem hier gefunden ...
Eine Zwischenfrage: was ist denn der Unterschied zu dem geposteten CRONTAB, zu WGET, das ich bisher genutzt habe?
Mein bisheriger CRONTAB:
* * * * * wget -q http://www.example.com/cron.php > /dev/null
Im Grunde gibt es da keinen Unterschied. It's a matter of taste ;) (und ich kann mich dunkel erinnern, mit wget mal Probleme bei der HTTP-Authentification gehabt zu haben...)
Hallo, vielen Dank für
am 21.01.2010 - 17:57 Uhr
Hallo,
vielen Dank für Eure Hilfestellung. Ich habe inzwischen DIE LÖSUNG für mich gefunden. Ich kann über crontab scheinbar nicht auf lynx, curl, etc. zugreifen. Mein Provider hat mir empfohlen. ein eine .sh-Datei zu erstellen mit folgendem Inhalt:
#!/bin/sh
/usr/local/bin/php scriptpfad
Diese sollte ich aufrufen. Allerdings ging das auch nicht.
Nun die Lösung: Im Verzeichnis /drupal/scripts/ befindet sich die Datei cron-lynx.sh (755), dich aufrufe mit dem crontab als "* * * * * www/drupal/scripts/cron-lynx.sh".
Inhalt der Datei ist:
#!/bin/sh
# $Id: cron-lynx.sh,v 1.3 2006/08/22 07:38:24 dries Exp $
/usr/bin/lynx -source http://example.com/supercron.php > /dev/null 2>&1
Und es geht...
Kaum zu glauben, dass ich mehrere Stunden mit diesem cronjob zu tun hatte.
Irgendwie interessant, dass
am 21.01.2010 - 18:05 Uhr
Irgendwie interessant, dass du lynx nicht direkt aufrufen darfst, aber über ein Shellskript keine Probleme entstehen. Freut mich, dass es endlich funktioniert :)
So jetzt habe ich mal die
am 21.01.2010 - 18:15 Uhr
So jetzt habe ich mal die lynx Variante bei meinem oben geschilderten Problem versucht ... natürlich ohne Erfolg :-(
Vielleicht ist ja die erwähnte sh Variante ne Rettung für mich?
Wenn ich das richtig verstanden habe, muss ich doch nur die cron-lynx.sh
in Zeile 4:
/usr/bin/lynx -source http://example.com/cron.php > /dev/null 2>&1
mit meiner URL ausfüllen und dann den Cronjob wie oben erwähnt als
"* * * * * html/scripts/cron-lynx.sh"
laufen lassen - oder?
Was meinen die Herren "CRON Profis"? Könnte mir das vielleicht auch zum Erfolg verhelfen?
--------------------
Design Probleme einfach mit FF und FIREBUG lösen!
Genau, die URL eintragen und
am 21.01.2010 - 18:30 Uhr
Genau, die URL eintragen und dann aufrufen...
Ein Tipp: Bei Minuten */2 angeben. Dann sendet er automatisch alle 2 Minuten einen Aufruf. Gut zum Testen.
Viel Erfolg! Ich weiss was Du durchmachst. ;-)