hallo zusammen
bin gerade am dircetmail einrichten. leider lässt sich der versand nicht via cronjob anstossen. ich kann dmailerd.phpcron von der shell aus ausführen und bekomme mittlerweile auch keine fehlermeldung mehr, nachdem ich die tx_directmail_cron.lock aus typo3temp gelöscht habe. aber es passiert trotzdem nichts..
hat jemand eine idee? funktioniert dmailerd.phpcron überhaupt bei jemandem?
lg
Hallo ohrlab
Poste doch mal deinen Crontab Eintrag bitte.
Gruss Lars
der sieht derzeit so aus:
*/5 * * * * /home/mp3/public_html/typo3conf/ext/direct_mail/mod/dmailerd.phpcron
Bei mir hat es bisher immer einwandfrei funktioniert. Nun aber nicht mehr, und ich habe das Gefühl, das es an meinem Update auf TYPO3 4.1.2 liegt.
Der Cronjob gibt immer aus: "TYPO3 Direct Mail Cron: Aborting, another process is already running!". Wenn ich die Datei tx_directmail_cron.lock im typo3temp-Ordner lösche, wird sie sofort neu erzeugt.
Hat jemand eine Idee?
Ich habe das gleiche Problem, und ich denke, dass aus irgendeinem Grund die letzte Zeile des "res/scripts/dmailerd.phpcron" nicht ausgeführt wird:
unlink (PATH_site.'typo3temp/tx_directmail_cron.lock');
Im Moment komme ich da auch nicht weiter.
Ich kann über die shell mit
"php /home/.../typo3conf/ext/direct_mail/res/scripts/dmailerd.phpcron > /dev/null"
den Prozess anstossen. Als cronjob funtioniert es aber nicht. bleibt dann offenbar an dem "tx_directmail_cron.lock" hängen.
hat jemand eine Idee?
Ich bin nun doch einen kleinen Schritt weiter.
Ich habe die dmailerd.phpcron zu einer dmailer.php-Datei gemacht
Der cronjob lautet jetzt: "php /home/httpd/vhosts/oebm.at/httpdocs/cms/typo3conf/ext/direct_mail/res/scripts/dmailerd.php > /dev/null"
die erste Zeile der .phpcron Datei "#!/usr/bin/php -q" konnte ich damit löschen.
In Zeile 41 habe ich die Variable PATH_thisScript um $_SERVER['DOCUMENT_ROOT'] erweitert, um den absoluten Pfad zu erhalten und so eine open_basdir restriction zu vermeiden. (Diese restriction tritt natürlich nur auf, weil hier irgendwie absoluter und relativer Pfad durcheinander geraten und daher zu einer falschen Pfadangabe führen.)
dmailerd.php Zeile 41
if (!defined('PATH_thisScript')) define('PATH_thisScript',str_replace('//','/', str_replace('\\','/', $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'])));
Nun kam ich zu folgender Fehlermeldung:
fopen(/home/.../typo3temp/tx_directmail_dmailer_log.txt): failed to open stream: Permission denied in /home/.../typo3conf/ext/direct_mail/res/scripts/class.dmailer.php on line 805
logfile cannot be opened. Quiting directmail sending!
Ich schließe daraus, dass es in class.mailer.php beim Auslesen der log Datei zu Berechtigungsproblemen kommt. Warum das nur passiert, wenn "res/scripts/dmailerd.php" per cronjob aufgerufen wird, verstehe ich nicht. Die Datei wurde doch von PHP geschrieben und müßte daher doch auch von PHP auch wieder lesbar sein? (-rw------- 1 wwwrun www )
Beim Aufruf des scripts über die shell bekomme ich keinen Fehler.
(Wenn ich versuchsweise die log-Datei auf 777 setze funktioniert alles prächtig. "OK,Cronjob läuft." und Mails werden rechtzeitig verschickt)
Was kann ich machen?
Irgendwelche Konfigurationsprobleme?
Aja:
Plesk 8.1
Typo3 4.1.2
directmail 2.5.1
Hi!
Danke für die Denkanstöße... Haben mir sehr geholfen :-)
Falls es noch hilft:
Du (ich auch) hast das Problem, dass der Cronjob unter einem anderen User ausgeführt wird, als der Apache dies tut.
Ich habe einfach nach dem erstellen der Datei diese per 777 angepasst. Fertig.
Du selbst hast diesen Weg vorgeschlagen. Es scheint der Beste zu sein.
Grüße
McGregor
Zwar sehr alt das Thema, aber die Meldung habe ich auch.
Füge ich in Zeile 41 allerdings dieses hier ein
if (!defined('PATH_thisScript')) define('PATH_thisScript',str_replace('//','/', str_replace('\','/', $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PHP_SELF'])));
So erhalte ich diese Fehlermeldung:
Parse error: syntax error, unexpected T_STRING in ...typo3conf/ext/direct_mail/res/scripts/dmailerd.php on line 41
Also irgendetwas stimmt an der Zeile nicht.