Cronjobs werden bearbeitet in: crontab -e -u www-data
Regelmäßig auszuführen ist das PHP-Skript taskstarter.php im Hauptverzeichnis des Tombejo-Programms. Dies wird in der Regel über einen Cron Job auf dem Linux-Server geregelt.
Das Skript benötigt ein Passwort zum starten des Programms um zu vermeiden, dass das Programm von unbefugten gestartet werden kann. Dieses muss in der Datei includes/settings/settigs.inc.php im Tombejo-Programm gesetzt werden indem dort die Zeile
cronpass = meinpasswort
hinzugefügt wird. „meinpasswort“ sollte durch ein sichereres Passwort ersetzt werden.
Das Programm sollte unter dem selben Benutzer gestartet werden, unter dem der Web-Server läuft (z.B. www-data). Grund ist, dass Tombejo den selben Code ausführt und in die selben Logdateien schreibt, wie das Script taskstarter.php . Wenn unterschiedliche Benutzer verwendet werden, kann es dabei zu Problemen mit Schreib- und Leserechten für Dateien kommen.
Für die Ausführung des Skripts gibt es dann prinzipiell zwei Möglichkeiten.
Dazu muss bei den meisten aktuellen Linux Distributionen das Paket php5-cli installiert sein, wodurch ermöglicht wird, dass PHP-Skripte von der Kommandozeile gestartet werden können, z.B. „php taskstarter.php“ .
Soll der Cron-Job das Skript z.B alle 3 Minuten ausführen, würde die Zeile in der Cron-Konfiguration z.B so aussehen.
*/3 * * * * php /var/web/websites/tombejo.com/www/taskstarter.php pass=asdf
Hier die Erklärungen der einzelnen Elemente der Zeile:
*/3 * * * *„ verursacht dabei die Ausführung alle 3 Minuten. Ist die Ausführung alle 5 Minuten erwünscht, sieht dasn dann so aus: */5 * * * *
„php“ ist das Kommandozeilenprogramm zur Ausführung von PHP-Skripten. Eventuell muss der gesammte Pfad zum Programm angegeben werden, z.B. /usr/bin/php
“/var/web/websites/tombejo.com/www/taskstarter.php„ ist der absolute Pfad zum Skript taskstarter.php . Das muss entsprechend angepasst werden.
„pass=meinpasswort“ ist ein Name-Wert-Paar das an das PHP-Programm übergeben wird. „meinpasswort“ muss dabei durch das oben erwähnte Passwort aus der Datei includes/settings/settigs.inc.php ersetzt werden.
Für dem Aufruf über den Webserver gibt es verschiedene Möglichkeiten. Das Prinzip aber besteht darin, taskstarter.php nicht von der Kommandozeile aufzurufen, sondern wie eine Webseite über den Webserver. Der Vorteil ist hier, dass es keine Rolle spielt unter welchem Benutzer der Cron-Job läuft. Die Url für diesen Aufruf sieht dann z.B. so aus:
http://tombejo.com/taskstarter.php?pass=meinpasswort
Dabei muss http://tombejo.com mit der korrekten URL-Adresse der Tombejo-Installation ersetzt werden. Auch muss „meinpasswort“ mit dem oben erwähnte Passwort aus der Datei includes/settings/settigs.inc.php ersetzt werden.
Für das Aufrufen der URL muss dann wiederum wir bei der PHP-CLI Version ein Cron-Job erstellt werden. Zum Aufruf der Webseite bieten sich verschiedene Programme an:
Ein Beispiel wäre z.B. „wget“, dass auch als Paket „wget“ in den meisten Linux-Distributionen zur Verfügung steht. In der Cron-Konfiguration sieht das für „wget“ dann z.B. so aus:
*/3 * * * * wget –spider http://tombejo.com/taskstarter.php?pass=meinpasswort
Das –spider verhindert dabei, das Speichern der von Webserver gelieferten Datei, die wir nicht benötigen. Möglicherweise muss der absolute Pfad zu „wget“ angeben werden, z.B /usr/bin/wget
Eine weitere Möglichkeit wäre CURL, was ebenfalls in den den meisten Linux-Distributionen als Paket „curl“ zur Verfügung steht. Der Aufruf ist fast der selbe wie für wget, z.B.
*/3 * * * * curl -s http://tombejo.com/taskstarter.php?pass=meinpasswort
Auch hier muss die URL angepasst werden und eventuell der absolute Pfad zu curl verwendet werden, z.B. /usr/bin/curl .
Im Grunde muss nichts anderes gewährleistet sein, als das das taskstarter.php Skript mit dem richtigen Parameter „pass“ aufgerufen wird und dieser Parameter muss in includes/settings/settngs.inc.php entsprechend konfiguriert sein.