2010-12-07 16 views
0

Ich folgte den Anweisungen auf http://book.cakephp.org/view/1110/Running-Shells-as-cronjobs und ich lief immer noch in ein seltsames Problem beim Ausführen meiner Shell in Cronjob.Problem läuft Kuchen Shell in Cronjob

Ich erhalte Fehler, wenn ich versuche Modell zu verwenden, in der Schale:

Fatal error: Call to undefined function mysql_query() in /home/cake1.3.6/cake/libs/model/datasources/dbo/dbo_mysql.php on line 600

Die Schale fein läuft, wenn ich es nur von Hand anwerfen.
Warum kann PHP mysql_query() nicht sehen, wenn es in einer Shell über cronjob gemacht wird?

Ich fand heraus, dass ich das Problem durch den Aufruf von PHP mit seinem absoluten Pfad in Kuchen/console/Kuchen beheben:

Von:

exec php -q ${LIB}cake.php -working "${APP}" "[email protected]" 

An:

exec /usr/local/bin/php -q ${LIB}cake.php -working "${APP}" "[email protected]" 

Allerdings mag ich diese Lösung nicht, weil sie den Kuchenkern verändert.

Jeder irgendeinen Anhaltspunkt?

EDIT Es gab eine Antwort von jemand früher und ich antwortete, dass ich sicher war, eine Kopie von PHP es binär war, aber es stellte sich heraus, ich war falsch! Was ist mit dieser Antwort passiert, als sie einfach verschwunden ist? Wer auch immer das war, bitte gib die Antwort zurück und ich gebe dir einen Punkt. Vielen Dank!

+1

Die Umgebung für Cron und CLI könnte anders sein, dies könnte zu dem Problem führen – ajreal

+0

@ajreal: Das OP möchte, dass Sie Ihre Antwort wiederherstellen. –

Antwort

1

Der relative Pfad könnte sich stattdessen auf andere PHP-Binärdateien beziehen.
Sie können einen Test

php -m | grep mysql -i 

UND

/usr/local/bin/php -m | grep mysql -i 

Wenn der erste nicht, es erklären überein, warum Sie einen undefinierten fatalen Fehler.

+0

Beide zeigen mysql und mysqli. Ich bin auch positiv, dass es nur eine Kopie von php binary gibt, die ich in/usr/local/bin kompiliert habe. Vielen Dank! – TopQ

+0

Testen Sie es mit Cron? – ajreal

+0

hmm ... Entferne die ** FALSCH ** Antwort ... um Überschwemmungen zu vermeiden ... – ajreal