2010-12-14 16 views
0

Ich habe einen Befehl, der gut aus dem Terminal/der Befehlszeile ausgeführt wird. Wenn ich jedoch versuche, denselben Befehl wie einen Cron-Job auszuführen, schlägt es fehl. Hier ist der Cron-JobLibcurl mit OpenSSL nicht von Cron gefunden

*/5 * * * * (PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/lib; /path/to/app/public_html/vendors/cakeshell report main -cli /usr/local/lib -console /path/to/app/public_html/cake/ console -app /path/to/app/public_html/app) 

..und hier wird die Fehlermeldung:

Fatal error: Uncaught CurlException: 1: Protocol https not supported or disabled in libcurl thrown in path/public_html/app/vendors/facebook/graph/facebook.php on line 622 

I Libcurl und --OpenSSL Unterstützung installiert haben. Ich denke, das ist ein PATH-Problem. Wie Sie sehen können, habe ich versucht, den Pfad zu PHP hinzuzufügen, von dem ich glaube, dass er/usr/local/lib (von phpinfo()) ist, aber er schlägt immer noch fehl.

Ich bin völlig ratlos, warum das von Terminal funktionieren würde, aber nicht Cron. Ich glaube nicht, dass es mit dem Facebook SDK (Graph) zu tun hat, da es außerhalb von Cron funktioniert. Hat jemand irgendwelche Ideen?

Antwort

2

Die Lösung gefunden. In phpinfo() finde die Variable $ _SERVER ['PATH'] unter PHP-Variablen, kopiere den Inhalt davon und preappde ihn als PATH an deinen Cron-Job. So

*/5 * * * * /home/worldDomination 

würde

*/5 * * * * PATH=contents-of-$_SERVER['PATH'] ; /home/worldDomination 

sein, dass es ist.