Problem mit Moodle 3.2, 1und1 und cronjob

Problem mit Moodle 3.2, 1und1 und cronjob

von Christoph Rüdesheim -
Anzahl Antworten: 5

Liebe Community,

seit Wochen schlage ich mich durch die Hilfeseiten, lerne dabei so nebenbei mich mit meinem Terminal auf meinem Webspace zu bewegen ...

Folgendes Problem bleibt. Ich habe die Moodle-Clickandbuild-App auf meinem 1und1-Webspace installiert und versuche den cronjob zum Laufen zu bringen. Dazu habe ich die entsprechenden Hilfeseiten von 1und1 und moodle.org zur Hilfe gezogen.

Der cronjob läuft, wenn ich www.meine.Seite/admin.cron.php aufrufe. Jetzt sitze ich natürlich nicht den ganzen Tag vor meinem PC und rufe minütlich die Seite auf. Also soll das die cron.php erledigen, die ich entsprechend mit dem vollständigen Pfad angepasst habe. Tut leider nicht. Bei Gelegenheit erhalte ich den Hinweis, dass 1und1 im core php 4.4.9 läuft. Der Service von 1und1 erklärt sich dafür nicht zuständig.

Mein Aufruf lautet: 

5 * * * * /usr/bin/php5.4 /kunden/homepages/21/xxxxxx/htdocs/clickandbuilds/Moodle/MyCMS/admin/cli/cron.php >/dev/null


Ich habe auch einen externen Anbieter cron-job.org eingerichtet, aber der meldet, dass der cronjob-Aufruf zu groß ist.

Ich wäre echt dankbar, wenn jemand für mich eine Lösung zur Hand hat.

Herzliche Grüße 

Christoph Rüdesheim 

Mittelwert:  -
Als Antwort auf Christoph Rüdesheim

Re: Problem mit Moodle 3.2, 1und1 und cronjob

von Thorsten Rochelmeyer -

Hallo Christoph,

moodle bei Sharehostern ... eher schwierig. Meine Erfahrung ist, dass man gegen Windmühlen kämpft, wenn man moodle nicht mit git aktuell halten kann und keinen root-Zugriff hat.

Aber gut, lass uns mal probieren Dein Problem zu lösen:

Wenn der händisch angestoßene cron-Job läuft, dann muss sich das auch automatisieren lassen. Das ist erst einmal gut.

Finde bitte erst einmal heraus, welche moodle-Version läuft. Innerhalb von moodle auf Website-Administration > Systemmitteilungen. Falls das eine ältere Version ist, die nicht mehr mit Sicherheitsupdates versorgt wird, dann bitte Finger weg davon!

Wenn Du auf der Kommandozeile "php -v" eingibst, verrät Dir der Server, welche PHP-Version installiert ist und läuft. (wenn es 4.4.irgendwas wäre, würde der cron-Job mutmaßlich nicht laufen). Auch hier bitte schauen, ob die PHP-Version für Deine moodle-Version ausreicht.

Dann bitte mit "which php" kontrollieren, ob der Pfad zu PHP stimmt.

Damit der cron-Job alle 5 Minuten ausgeführt wird, müssen die ersten Zeichen in der crontab */5 * * * * lauten. So wie Du das eingegeben hast, wird der cron-Job stündlich bei Minute 5 ausgeführt. Empfohlen ist, den cron-Job minütlich auszuführen → */1 * * * * ... (aktuelle moodle Versionen, vorausgesetzt)

Weiterhin wichtig ist, dass der cron-Job vom User 'Webserver' ausgeführt wird. Der heißt in vielen Fällen "www-data".

Wenn Du crontab mit "crontab -u www-data -e" aufrufst, sollte der cron-Job in die crontab des Webserver-Users eingetragen werden. Dann müßte das auch laufen.

Der Rest Deines Eintrags sieht im Grunde erst einmal gut aus. Prüf mal bitte, ob der cron-Job auch startet, wenn Du den gesamten Pfad, so wie in der crontab auf der Kommandozeile eingibst.

Wenn's immer noch streikt, dann bitte hier nochmal fragen.

LG

Thorsten



Als Antwort auf Thorsten Rochelmeyer

Re: Problem mit Moodle 3.2, 1und1 und cronjob

von Christoph Rüdesheim -

Hallo Thorsten,

herzlichen Dank für die Infos. Hier meine Recherchen:

moodle 3.3.1

php -v: 

(uiserver):xxxx:~$
php -v
PHP 4.4.9 (cgi-fcgi) (built: Feb 28 2017 11:31:58)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

which php:

(uiserver):xxxx:~$ which php
/usr/bin/php

User Webserver:

(uiserver):xxxx:~$ crontab -u www-data -e
must be privileged to use -u


Und trotzdem hast du mich auf den richtigen Weg gebracht:

(uiserver):xxxx:~$ /usr/bin/curl -s http://moodle.yyyyde/admin/cron.php
Server Time: Mon, 21 Aug 2017 13:55:25 +0100

Cron script completed correctly
Cron completed at 13:55:25. Memory used 13.6MB.
Execution took 0.115039 seconds


Das habe ich jetzt in die crontab eingebaut und es funktioniert!

* * * * * /usr/bin/curl -s http://www.moodle.yyyy.de/admin/cron.php


Herzlichen Dank für die schnelle Hilfe, auch an Andreas für das Hilfeangebot!
Christoph 

Als Antwort auf Christoph Rüdesheim

Re: Problem mit Moodle 3.2, 1und1 und cronjob

von Thorsten Rochelmeyer -

Christoph,

ich zerstöre Deine Euphorie ungerne, aber

wenn der cron-Job in der von Dir geschilderten Art aufgerufen werden kann, hast Du ein Sicherheitsproblem. Den kann dann nämlich jeder nach Belieben über das Netz auslösen. Du solltest innerhalb von moodle ein Passwort setzen, welches das verhindert UND Deinen Aufruf ändern. Da darf die URL nicht drin vorkommen, sondern ein Pfad auf das Verzeichnis auf dem Webserver. So etwas wie /var/services/web/http/moodle...  oder wie auch immer die Verzeichnisstruktur bei 1&1 aussieht.

Ich bin mir nicht sicher, was die 5 Sterne am Anfang Deiner crontab-Zeile bewirken. Entweder der läuft auf Dauerfeuer → dann klemmt dir 1&1 das mit Sicherheit ab, weil Du damit richtig Last auf den Server bringst, oder Du hast in 24 Stunden wieder die Meldung, dass der cron-Job nicht ausgeführt wurde.

Die Syntax lautet */1 * * * * für minütlich, oder */5 * * * * für 5-minütlich, u.s.w. .

Der Job wird damit aber sicher noch nicht vom Webserver-User ausgeführt. Damit werden einzelne Tasks innerhalb des cron-Jobs an fehlenden Rechten scheitern.

Mich wundert, dass moodle 3.2 sich mit der PHP-Version zufrieden gibt, die Du gefunden hast, zumal keine cli-Version installiert zu sein scheint. Was sagt denn Website-Administration > Server > Serverkonfiguration?

LG

Thorsten


Als Antwort auf Thorsten Rochelmeyer

Re: Problem mit Moodle 3.2, 1und1 und cronjob

von Christoph Rüdesheim -

Hallo Thorsten,

danke für die Bedenken, die ich gerne beherzige, aber bei dem was die letzten Wochen an Problemlösungsversuchen gelaufen ist, bin ich jetzt einen deutlichen Schritt weiter.

Anbei die Serverkonfiguration:


Herzliche Grüße 

Christoph Rüdesheim 

Anhang Bildschirmfoto 2017-08-21 um 16.43.42.png
Als Antwort auf Christoph Rüdesheim

Re: Problem mit Moodle 3.2, 1und1 und cronjob

von Thorsten Rochelmeyer -

Erfreulicherweise läuft bei Dir php7.0

Ich würde den Aufruf in /usr/bin/php7.0 ändern. Anscheinend krebst da auch noch irgend eine alte php-Version auf dem System rum, mit der man eigentlich nichts zu tun haben möchte.

Thorsten

.. kann nachvollziehen, wie es ist sich über Stunden mit Fehlersuche zu beschäftigen und gefühlt kein Stück weiter zu kommen. Bei einigen der Fehler, denen ich nachjage, bin ich mir nicht einmal sicher, ob ich verstehe, was eigentlich das Problem ist. Man merkt erst später, was man dadurch alles gelernt hat ...