Posts mit dem Label 1und1 werden angezeigt. Alle Posts anzeigen
Posts mit dem Label 1und1 werden angezeigt. Alle Posts anzeigen

15 Mai 2015

Typo3 7.x und 1und1: Crontab Scheduler auf PHP 5.5 umstellen

Vor einziger Zeit habe ich einen Artikel geschrieben, wie ihr beim Webhosting von 1und1 in Kombination mit Typo3 6.x den Scheduler richtig einrichtet. Bei Typo3 7.x ist der Einsatz von PHP ab Version 5.5 unbedingt nötig, weswegen ihr etwas umstellen müsst, andernfalls bekommt ihr bei der Ausführung vom Scheduler eine Fehlermeldung wie diese hier:

X-Powered-By: PHP/5.4.39Content-type: text/html
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /homepages/xx/xxxxxxxxxx/htdocs/xxxxxx/typo3/sysext/core/Classes/Core/Bootstrap.php on line 121

Bisher war der Befehl für den Einsatz der bisherigen dev-Version "php6" gewesen (PHP5.4), so wie in diesem Beispiel: 

0 0 * * * php6 /kunden/homepages/xx/dxxxxxxxxx/htdocs/Unterordner/typo3/cli_dispatch.phpsh schedule

Um aber jetzt PHP 5.5 einzusetzen, müsst ihr anstatt php6 jetzt /usr/bin/php5.5 eingeben. Das sieht dementsprechend nun so aus:

0 0 * * * /usr/bin/php5.5 /kunden/homepages/xx/dxxxxxxxxx/htdocs/Unterordner/typo3/cli_dispatch.phpsh schedule

(in diesem Beispiel wurde der Scheduler so eingestellt, dass er immer Nachts um 0 Uhr gestartet wird)

Jetzt sollte auch der Scheduler von Typo3 7.x bei eurem 1und1 Hostingpaket laufen!

30 Juli 2013

Typo3 6.x Scheduler bei 1und1 mit Crontab und PHP5.4 einrichten

Endlich habe ich den Typo3-Scheduler in meinem 1und1-Hosting-Paket zum Laufen gebracht! Bei 1und1-Hosting gibt es einige Hürden einen Cronjob einzurichten, nicht zuletzt weil 1und1 standardmäßig nur PHP 4.4 bzw. 5.2 laufen hat, wenn man der offiziellen Anleitung von 1und1 folgt.
Da man für neuere Typo3-Versionen (oder auch Joomla) mindestens PHP 5.3 benötigt, unter anderem für die PHP-Funktion "Namespaces", zeige ich euch, wie ihr einen Cronjob mit PHP 5.4 zum Laufen bringt.

1. Klickt auf "Backend users" und erstellt einen Benutzer Namens "_cli_scheduler". Dieser sollte *kein* Amin-User sein und (aus Sicherheitsgründen) ein anderes Passwort haben als euer Login. Dieser Benutzer wird vom Scheduler verwendet, um die eure eingestellten Aufgaben abzuarbeiten.

2. Öffnet im Typo3-Backend den Menüpunkt "Scheduler" und öffnet den Reiter "Setup check". Hier findet ihr den Pfad zu eurem Scheduler (der so ähnlich aussieht: "/kunden/homepages/xx/dxxxxxxxxx/htdocs/Unterordner/typo3/cli_dispatch.phpsh scheduler"), den ihr euch kopiert - nachher werdet ihr diesen Pfad benötigen.

3. Loggt euch in euer 1und1-Account ein und öffnet unter "Zugänge" den Menüpunkt "SSH-Konfiguration". Hier könnt ihr eure Zugangsdaten für die Shell einsehen und konfigurieren. Diese Zugangsdaten werdet ihr ebenfalls gleich benötigen.

4. Ladet euch Putty herunter (ein kostenloser SSH-Client) und loggt euch mit den Zugangsdaten von Punkt 3 ein.

5. Gebt in der Shell den Befehl "crontab -e" ein, und gebt danach "i" ein, um in den Editier-Modus zu gelangen.

6. Scrollt mit den Cursortasten bis ganz nach unten und gebt dies ein, in 2 Zeilen.

MAILTO=max.mustermann@email.de
0 0 * * * php6 /kunden/homepages/xx/dxxxxxxxxx/htdocs/Unterordner/typo3/cli_dispatch.phpsh schedule


1und1 Typo3 Cronjob Scheduler mit Crontab und SSH einstellen
Zum vergrößern klicken!


Wie ihr erkennen könnt, ist der Abschnitt mit dem Pfad /kunden/.../ der gleiche Pfad aus Punkt 2, den ihr euch notiert habt (natürlich sind die vielen "/xx/xxx/" nur Platzhalter - bei jedem 1und1-Kunden ist der Pfad anders).

Die Zeile mit "MAILTO" ist optional - wenn ihr hier eure E-Mail-Adresse eingebt, bekommt ihr immer einen Statusbericht, wenn mit dem Cronjob etwas nicht richtig läuft.

Mit dem Befehl php6 wird die aktuellste php-dev von 1und1 eingesetzt, in diesem Fall ist es die Version 5.4.17. 

Der Cronjob in diesem Beispiel wird jeden Tag um punkt 0 Uhr ausgeführt. Ich empfehle euch dies beizubehalten, in den meisten Fällen sollte das ausreichen. Solltet ihr andere Zeiten wollen bzw. eine höhere Frequenz, müsst ihr die ersten 5 Zeichen verändern. Hier einige Beispiele:

Jede volle Stunde: 0 * * * *
Jeden Tag um fünf Uhr morgens: 0 5 * * *
An jedem 15. des Monats um Mitternacht: 0 0 15 * *

Ihr könnt optional auch den Befehl > /dev/null hinter "schedule" dranhängen, dann gibt es nur eine Benachrichtigung, wenn eine Fehlermeldung gekommen ist.

7. Um den Editier-Modus von Crontab zu beenden, gebt "Esc" ein, und danach "ZZ". Danach könnt ihr Putty mit dem Befehl "exit" schließen.

8. Das war's! Jetzt wird der Cronjob von 1und1 mit PHP 5.4 ausgeführt und sollte z.B. nicht mehr die Fehlermeldung wegen PHP 5.2 "Unexpected character in input:  '\' (ASCII=92)" ausspucken. Ihr könnt dies nochmal checken, indem ihr nach der zu erwartenden Ausführungszeit wieder im "Setup check" vom Scheduler im Typo3-Backend nachseht ob der Cronjob korrekt ausgeführt wurde.

Wenn ihr irgendwelche Fragen habt, schreibt mir ein Kommentar, ich werde versuchen euch so schnell wie möglich zu antworten!

31 Januar 2013

Typo3 6.0.1 Fehlermeldung "File has been deleted"

Habt ihr auch gerade von Typo3 6.0 auf 6.0.1 geupdated und bemerkt, dass im Backend beim Modul "Sprachen" immer noch die Fehlermeldung "File has been deleted" auftaucht mit einer entsprechenden Verlinkung zum Bugtracker von Typo3?

Fehlerbehebung:

Solltet ihr diesen Fehler bereits in Version 6.0 haben, müsst ihr folgendes machen:
  1. Alle Caches löschen

    Alle Caches löschen

  2. Im Installations-Tool unter "Clean up" die temporär gespeicherten Dateien löschen (keine Sorge, es sind nur temporäre Dateien - kein Datenverlust)

  3. In der Datenbank den Befehl "truncate sys_file_processedfile" ausführen. Durch diesen Befehl wird diese Tabelle geleert. Solltet ihr bei einem Hostingpaket von z.B. 1und1 sein und euch nicht so sehr mit Datenbanken auskennen, müsst ihr folgende Schritte folgen.
  • In eurem Kundenbereich den Menüpunkt "MySQL" auswählen.
  • In der Übersicht der Datenbanken auf "phpMyAdmin" klicken (neues Fenster wird geöffnet).
  • Auf der linken Seite die Tabelle "sys_file_processedfile" auswählen.
  • Schließlich ganz oben rechts auf "leeren" klicken. Nach einer Abfrage ob tatsächlich der Befehl "truncate sys_file_processedfile" ausgeführt werden soll, klickt ihr auf "ja". Das war's schon.

MySQL im 1und1-Kundenkonto
MySQL im 1und1 Kundenkonto

phpMyAdmin in den MySQL-Einstellungen
phpMyAdmin in den MySQL-Einstellungen

Die sys_file_processedfile-Tabelle in der Datenbank
Die sys_file_processedfile-Tabelle in der Datenbank

Tabelle leeren bzw. "truncate" sys_file_processedfile
Tabelle leeren bzw. "truncate"

Hintergrund:

Im Zuge der neuen Version 6.0 wurde das neue FAL (File Abstraction Layer) eingeführt: Kurzum werden in dieser Tabelle die temporären Dateien verzeichnet - sollten temporäre Dateien manuell entfernt worden sein kann es passieren, dass Typo3 nach temporären Dateien sucht, die eigentlich gar nicht mehr existieren und deswegen diese Fehlermeldung ausspucken. Selbst beim Update auf 6.0.1 bleibt diese Fehlermeldung bestehen, wenn diese Tabelle nicht zuvor geleert wird.

Wenn ihr weitere Fragen habt, oder einen Fehler in meiner Beschreibung gefunden habt, zögert nicht mich darauf hinzuweisen, entweder hier durch ein Kommentar oder direkt über mein Google+-Profil, welches ihr oben rechts finden könnt.