Posts mit dem Label PHP werden angezeigt. Alle Posts anzeigen
Posts mit dem Label PHP werden angezeigt. Alle Posts anzeigen

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!

01 Mai 2013

RealUrl Kompatibilität mit Typo3 6.1

Typo3 6.1 wurde gestern veröffentlicht - leider funktioniert RealUrl noch nicht mit dieser Version zusammen wegen der Umstellung auf mysqli. Ein Patch gibt es zwar bereits schon, wurde aber noch nicht veröffentlicht im Extension Repository.

Um euch die Wartezeit zu verkürzen, könnt ihr bis dahin aber auch selbst Hand anlegen:
  1. Öffnet die Datei /typo3conf/ext/realurl/class.tx_realurl.php, und ersetzt die Zeilen 239-243 mit folgendem Code:

    if (!t3lib_extMgm::isLoaded('dbal')) {
    $this->useMySQLExtendedSyntax = TRUE;
  2. Verändert ansonsten nichts vom Code (also bis Zeile 238 und ab Zeile 244). Speichert die Datei ab, löscht den Typo3 Cache im Backend und fertig! Jetzt sollte RealUrl wieder wie gewohnt laufen.
Sobald das eigentliche Update fertig ist, würde ich auf jeden Fall empfehlen diese dann auch zu installieren. Dieser Code sollte in erster Linie nur eine Überbrückung bis zum Update sein.

Die Quelle für den Fix könnt ihr hier einsehen: https://review.typo3.org/#/c/19452/

Update 06.05.2013: RealUrl wurde jetzt offiziell geupdated und sollte nun auch auf Typo3 6.1 korrekt laufen. Hier der Link zur Extension Repository http://typo3.org/extensions/repository/view/realurl