Zum Inhalt springen

Cronjob richtig einrichten

Erstellt am 3. Dezember 2008 · 19 Antworten · letzte Antwort am 18. November 2011

Tags: Direct Mail, Server & Hosting, Frage

leof ·

Ja - sry... mein Fehler
Wollte damit eig. sagen, dass wir (bei jweiland gehosteten) keinen Zugriff auf die crontab haben...
Deswegen auch die ganzen umständlichen Versuche, per Sricpaufruf oder ähnliches, einen cronjob einzurichten...

Gruß, Leo

shustedt ·

Ist aber ganz einfach, habe auch einen Server bei Weiland.
Einfach (wie oben beschrieben) den absoluten Pfad als HTTP-Aufruf unter "Cronjob" im Weiland Kundenmenü eingeben. Man kann einen Aufruf von min. 30 Minuten wählen, sollte aber passen.

13Yeti13 ·

Hallo,
habe gerade das gleiche Problem und bin auch bei jweiland!
Komme jedoch mit der Lösungsfindung hier nicht weiter voran... #angry#

Konnte soweit folgen, dass ich die Datei in dmailerd.php umbennant habe, auch die Zeile #!/usr/local/bin/php sowie Zeile 41 sind bearbeitet. Über ssh erhalte ich aber immer noch die Fehlermeldung "<b>Warning</b>: main(./t3lib/class.t3lib_div.php) [<a href='function.main'>function.main</a>]: failed to open stream: No such file or directory in <...".

Im Kundenmenü von jweiland habe ich den cronjob auch eingerichtet mit dem Modus "HTTP Aufruf per URL" und einen absoluten Pfad eigegeben in der Form "http://URL/typo3cms/LAUFENDESSYSTEM/typo3conf/ext/direct_mail/res/scripts/dmailerd.php". Trotzdem geht es nicht. Das Kundenmenü zeigt mir bei der letzten Ausgabe einen 404 Fehler?! Und im TYPO3 Backend ist der Cronjob Status wieder auf Achtung und die Newsletter werden nicht automatisch versendet!

Was mache ich noch falsch? War die Überarbeitung der Datei jetzt überflüssig? Ist der absolute Pfad nicht ok (die Variante http://kunden/.... geht auch nicht, hier Fehlermeldung "curl: (6) Couldn't resolve host 'kunden'"?

Danke im Voraus und Gruß

leof ·

So - nach langer Sendepause hab ich mich auch nochmal damit befasst und alles wie oben beschrieben durchgeführt (umbenannt, 1. Zeile gelöscht und die Zeile 41 ersetzt).

Nun kommt der Fehler

HTTP/1.1 200 OK
Date: Sat, 29 Aug 2009 21:00:01 GMT
Server: Apache/1.3 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.8f AuthPG/1.3 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.9
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

<br />
<b>Parse error</b>:  syntax error, unexpected T_STRING in <b>/kunden/NUMMER/rp-hosting/NUMMER/NUMMERtypo3cms/dav/typo3conf/ext/direct_mail/res/scripts/dmailerd.php</b> on line <b>42</b><br />

Auszug aus der Datei (Zeile 40 bis 44)

if ($_SERVER['PHP_SELF']) {
        if (!defined('PATH_thisScript')) define('PATH_thisScript',str_replace('//','/', str_replace('\','/', $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'])));
} else {
        if (!defined('PATH_thisScript')) define('PATH_thisScript',str_replace('//','/', str_replace('\\','/', $_ENV['_'])));
}

Könnt ihr mal eure posten? Vielen Dank,
Leo

jweiland ·

Falls noch jemand ein Problem mit dem Einrichten des cronjobs zum Versenden des Newsletters hat:

im Verzeichnis /typo3cms/tools liegt eine Datei dmail-cron.php

Sofern das TYPO3 Projekt im Verzeichnis /typo3cms/projekt1 liegt, genügt es, diese Datei in das Verzeichnis /typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts zu kopieren.

Liegt das Projekt in einem anderen Verzeichnis, muss in der Datei jeweils projekt1 durch den passenden Verzeichnisnamen ersetzt werden.

Im Kundenmenü wird dann der cronjob eingetragen mit dem Pfad typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts/dmail-cron.php aufgerufen.

Über das Kundenmenü können Intervalle bis zu 30 Minuten spezifiziert werden. Ist ein häufigeres Ausführen erforderlich, richten wir auch gerne einen cronjob alle 5 Minuten ein.

Jochen Weiland

13Yeti13 ·

Danke Herr Weiland,

die angepasste Cronjob Datei war die Lösung!

MfG

ein zufriedener Kunde :p

jweiland schrieb

Falls noch jemand ein Problem mit dem Einrichten des cronjobs zum Versenden des Newsletters hat:

im Verzeichnis /typo3cms/tools liegt eine Datei dmail-cron.php

Sofern das TYPO3 Projekt im Verzeichnis /typo3cms/projekt1 liegt, genügt es, diese Datei in das Verzeichnis /typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts zu kopieren.

Liegt das Projekt in einem anderen Verzeichnis, muss in der Datei jeweils projekt1 durch den passenden Verzeichnisnamen ersetzt werden.

Im Kundenmenü wird dann der cronjob eingetragen mit dem Pfad typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts/dmail-cron.php aufgerufen.

Über das Kundenmenü können Intervalle bis zu 30 Minuten spezifiziert werden. Ist ein häufigeres Ausführen erforderlich, richten wir auch gerne einen cronjob alle 5 Minuten ein.

Jochen Weiland

leof ·

Trotz anpassen des Pfades erscheint bei mir die Fehlermeldung:

<b>Fatal error</b>:  Cannot redeclare class language in <b>/kunden/206180_70794/rp-hosting/7620/8620/typo3cms/typo3_src-4.2.8/typo3/sysext/lang/lang.php</b> on line <b>88</b><br />

Kann mir da jemand weiterhelfen? Das hat nun ja nichts mehr mit dem php-Skript zu tun...

Danke, Leo

Razor_One ·

Keine Ahnung warum, auf einer Installation geht es, auf der anderen nicht...

Quick and dirty Lösung: require_once

typo3conf/ext/direct_mail/res/scripts/class.dmailer.php
zeile: 757

alt:
if(!is_object($LANG) ) {
require (PATH_typo3.'sysext/lang/lang.php');
$LANG = t3lib_div::makeInstance('language');

neu:
if(!is_object($LANG) ) {
require_once (PATH_typo3.'sysext/lang/lang.php');
$LANG = t3lib_div::makeInstance('language');

leof ·

ICH HABS!!!!

Es läuft wie folgt:

Zuerst wie von jweiland beschrieben vorgehen:

jweiland schrieb

im Verzeichnis /typo3cms/tools liegt eine Datei dmail-cron.php

Sofern das TYPO3 Projekt im Verzeichnis /typo3cms/projekt1 liegt, genügt es, diese Datei in das Verzeichnis /typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts zu kopieren.

Liegt das Projekt in einem anderen Verzeichnis, muss in der Datei jeweils projekt1 durch den passenden Verzeichnisnamen ersetzt werden.

Im Kundenmenü wird dann der cronjob eingetragen mit dem Pfad typo3cms/projekt1/typo3conf/ext/direct_mail/res/scripts/dmail-cron.php aufgerufen.

Über das Kundenmenü können Intervalle bis zu 30 Minuten spezifiziert werden. Ist ein häufigeres Ausführen erforderlich, richten wir auch gerne einen cronjob alle 5 Minuten ein.

Jochen Weiland

Nun kommt bei mir die Fehlermeldung

<b>Fatal error</b>:  Cannot redeclare class language in <b>/kunden/168185_70794/rp-hosting/5368/6370/typo3cms/typo3_src-4.2.8/typo3/sysext/lang/lang.php</b> on line <b>88</b><br />

Damit das nicht passiert muss die Zeile 757 der Datei typo3conf/ext/direct_mail/res/scripts/class.dmailer.php von
require (PATH_typo3.'sysext/lang/lang.php');
nach
require_once (PATH_typo3.'sysext/lang/lang.php');
abgeändert werden

Lieben Gruß,
vom glücklichen Leo :p

Gowerl ·

Hallo zusammen,
nach der Anleitung von Herrn Weiland hats auch in Typo3 Version 4.5.7 geklappt.
Besten Dank nochmals für den Tipp.
Gowerl