Cronjobs am Server einrichten

Hallo zusammen,

bei mir gibt es anscheinend seit geraumer Zeit ein Problem mit den Cronjobs.

Sie werden anscheinend vom Server her nicht mehr ausgeführt.

Aktuell habe ich eine Aufgabe mit folgendem Befehl hinterlegt:
/usr/bin/php /var/www/vhosts/xxxxx/httpdocs/shopware/bin/console sw:cron:run

Wenn ich diesen jedoch ausführen lasse kommt folgende Fehlermeldung:
 

Die Aufgabe "/usr/bin/php /var/www/vhosts/xxxxx/httpdocs/shopware/bin/console sw:cron:run" wurde in 60 Sekunden abgeschlossen, jedoch traten Fehler auf

-: /usr/bin/php: No such file or directory

Die Meldung sagt ja, dass die Datei “php” im Verzeichnis /usr/bin nicht gefunden wurde.

Ich habe dort mal geschaut, diese ist wirklich nicht vorhanden.
Kann auch nicht beurteilen ob diese vorher da war, da ich dort keine Rechte habe irgendetwas zu machen.

Liegt es daran dass die Cronjobs nicht mehr funktionieren?
Wenn ja wie krieg ich diese wieder zum laufen?

Beste Grüße
Daniel

Bei welchem Provider bist du?

Frag doch einfach den Support des Providers. Der kennt normalerweise den Pfad.

1 Like

Sie können Shopware -Cron-Job URL wie http://www.example.com/backend/cron versuchen, aussehen wie das Tutorial an: How to set up cron job for Shopware.

Hallo,

ich bin bei webhoster.de, das ist ein kleiner und sehr günstiger Hoster. Meine Support Anfrage bzgl. des Cronjobs hab ich schon gestellt.
Dort bekam ich aber erstmal nur die Auskunft dass der auf dem Server eingerichtete Cronjob nicht mehr gültig sei.

Das half mir erstmal überhaupt nichts.

Wie gesagt, ich kann auf dem Server diese PHP-Datei nicht finden.
Diese sollte ja eigentlich unter “usr/bin” liegen.

 

@Sean‍
Ich hab bei easycron mal einen Cronjob eingerichtet.
Aber ich denke das löst das Problem nicht, da die Cronjobs ja anscheinen Serverseitig nicht funktionieren.

Bei Shopware scheint mir alles OK zu sein.

Vom Hoster hör ich bzgl. Cronjobs nichts mehr.

Werde mich dann mal um einen neuen bemühen müssen.  Undecided

Aber trotzdem würde ich das Problem gerne lösen und die Cronjobs bis dahin noch zum laufen bringen.
Meines erachtens fehlt mir der php-Interpreter, damit man die Cronjobs auf meinem Server überhaupt aufrufen kann.

Dieser müsste doch normal unter usr/bin/php sein oder?

Würde sich das Thema mal wer ansehen, wenn ich dem jenigen Zugang zu meinem Server geben würde?

Wenn es vom Hoster keine Infos gibt würde ich einfach mal probieren ob irgendein Befehl einfach global verfügbar ist… z.B. einfach nur php statt /usr/bin/php

Vielleicht findest du so kurzfristig noch eine Lösung… Mittelfristig scheint die Idee mit dem Wechsel gar nicht so doof zu sein.

Ansonsten kannst du natürlich alternativ auch die Cronjobs per Domain-Aufruf anstoßen: deine-shopdomain.de/backend/cron z.B. mit easycron wie schon einer der Vorposter vorgeschlagen hat.

Da ich hier technisch nicht so fit bin was Server/Cronjobs angeht, muss ich noch eine Frage dazu stellen.

Kann der Aufruf über „easycron“ und backend/cron überhaupt funktionieren wenn der Server keine Cronjobs kann?

Denn ich habe schon ein paar mal versucht die Cronjobs manuell zu über den Link zu starten, jedoch wird z.B. der Amazon Payments Cronjob  zur Status Änderung nicht ausgeführt. Zumindest ändert sich er der Status nicht.

Die Shopware-Cronjobs sind erstmal unabhängig von den Cronjobs auf dem Server.

Du brauchst irgendwo einen Cronjob der das Shopware-Cronjob-Modul anstößt. Idealerweise ist das ein Cronjob auf deinem Server der das Command sw:cron:run ausführt, so wie du es in deinem ersten Post dargestellt hast.

Man kann das Cronjob-Modul von Shopware aber auch über die URL aufrufen. Das kann bei lang laufenden Cronjobs problematisch sein, weil es da i.d.R. kürzere timeouts gibt.

Von wo aus diese URL aufgerufen wird ist prinzipiell egal. Zur Sicherheit sollte man diese Einstellungen beachten, im Standard kann man die URL aber einfach so aufrufen: http://community.shopware.com/_detail_1751.html

Gibt die URL denn irgendeine Rückmeldung wenn du die manuell aufrufst? Das Cronjob-Plugin ist installiert? In den Grundeinstellungen kannst du zusätzlich auch sehen wann ein Cronjob ausgeführt wurde.

Ja es kommt schon eine Rückmeldung auf der sonst „weissen Seite“.

lt. Grundeinstellungen -> System -> Cronjobs

werden die Cronjobs schon zu den jeweiligen Zeiten ausgeführt. (Cron Plugin ist installiert)

So wie es mir scheint, funktioniert der Amazon Payments Status Cronjob nicht richtig.

Er wird zwar ausgeführt übermittelt aber keinen Status, da sich hier nie etwas ändert.
Hab das jetzt im Sandbox Modus ein paar mal getestet.

Aber jetzt müssen erstmal die Cronjobs auf dem Server automatisiert laufen.
Dann muss kümmere ich mich um den Amazon Cronjob. (Vielleicht krieg ich ja jetzt kostenlosen Suppport von BestIT, denn das scheint ja dann ein Fehler des Plugin zu sein)

Hallo zusammen,

nun hat sich der Hoster bei mir nochmal gemeldet.
Die haben anscheinend ein etwas höheres Support aufkommen als sonst, daher hat das so lange gedauert.

Der PHP Interpreter liegt unter (für PHP Version 5.6): 

/opt/plesk/php/5.6/bin/php-cgi

Mein Cronjob sieht nun wie folgt aus:

/opt/plesk/php/5.6/bin/php-cgi /var/www/vhosts/xxxxx/httpdocs/shopware/bin/console sw:cron:run

Zeitplan: */5 * * * *

 

Aber der Fehler bleibt, nur mit anderem Pfad und schnellerem Abbruch:

Die Aufgabe "/opt/plesk/php/5.6/bin/php-cgi /var/www/vhosts/xxxxx/httpdocs/shopware/bin/console sw:cron:run" wurde in 8 Sekunden abgeschlossen, jedoch traten Fehler auf

-: /opt/plesk/php/5.6/bin/php-cgi: No such file or directory

 

Was nun?

Gruß

Daniel

Ich komme einfach nicht weiter.  Crying

Jetzt hat mir der Hoster gesagt dass in den Befehl noch die php.ini muss, diese liegt lt. der PHP-Infoseite unter

/var/www/vhosts/system/xxxxx/etc/php.ini 

Nun sollte ich lt. Hoster den Code entsprechend anpassen.
 

/opt/plesk/php/5.6/bin/php-cgi -c /var/www/vhosts/system/xxxxx/etc/php.ini /var/www/vhosts/xxxxx/httpdocs/shopware/bin/console sw:cron:run

Fehlermeldung bleibt die gleiche!

Kann mir bitte jemand helfen?
Das kann doch nicht so schwer sein.  Frown

Hab nun gestern eine neue „Aufgabe“ auf meinem Server eingerichtet.

Es wird nun alle 5min die „backend/cron“ URL aufgerufen.
Das führt ja jetzt auch die Cronjobs aus.

Macht das einen Unterschied ob die Cronjobs so oder über die „console“ aufgerufen werden?

@Scheibes schrieb:

Hab nun gestern eine neue „Aufgabe“ auf meinem Server eingerichtet.

Es wird nun alle 5min die „backend/cron“ URL aufgerufen.
Das führt ja jetzt auch die Cronjobs aus.

Macht das einen Unterschied ob die Cronjobs so oder über die „console“ aufgerufen werden?

Hallo, Scheibes!

Und wie hast du die Aufgabe auf dem Server eingerichtet?

Gruß
Sergey