CronJob und ZendFramework2

Fragen, Wünsche, Vorschläge...
Antworten
godi
Beiträge: 7
Registriert: 30 Dez 2014 20:56
Kontaktdaten:

CronJob und ZendFramework2

Beitrag von godi » 01 Jan 2015 22:28

Hallo,

ich würde gerne mit einem CronJob eine Action des Controllers im ZF2 auslösen.
Dazu gibt es ja die Zend\Console:
http://framework.zend.com/manual/curren ... ction.html
Jedoch ist es in der Weboberfläche nur möglich eine php Datei für den CronJob anzugeben und keine Shell Kommandos.

Jetzt wollte ich per shell_exec("/usr/bin/php <pfad zur index.php> <befehl>") in meiner CronJob.php Datei den Befehl ausführen, was leider nicht möglich ist.

Welche Möglichkeiten habe ich den per CronJob den Zend\Console Befehl auszuführen?


Mein Paket:
Domainserver light

MainziMan
Beiträge: 1149
Registriert: 04 Sep 2005 18:48

Re: CronJob und ZendFramework2

Beitrag von MainziMan » 02 Jan 2015 19:09

Was sollte damit
shell_exec("/usr/bin/php <pfad zur index.php> <befehl>")
denn ausgeführt werden?
warum nicht einfach so:
http://..../index.php?....

godi
Beiträge: 7
Registriert: 30 Dez 2014 20:56
Kontaktdaten:

Re: CronJob und ZendFramework2

Beitrag von godi » 02 Jan 2015 19:59

MainziMan hat geschrieben:Was sollte damit
shell_exec("/usr/bin/php <pfad zur index.php> <befehl>")
denn ausgeführt werden?
warum nicht einfach so:
http://..../index.php?....
Ich will ja nicht die View öffnen sondern ein "Console Route" ausführen.
Damit wird eine Methode im Controller ohne View ausgeführt.
Genaueres wird in der Beschreibung unter den oben angeführten Link beschrieben.

MainziMan
Beiträge: 1149
Registriert: 04 Sep 2005 18:48

Re: CronJob und ZendFramework2

Beitrag von MainziMan » 02 Jan 2015 22:27

Du kannst jederzeit an Stelle von
php <path>/index.php <param1> <param2> <param3>
äquivalentes durch Aufruf von folgendem erreichen:
http://.../<path>/index.php?<param1>+<param2>+<param3>

(mehr lese ich auf dem von Dir angeführten Link eigentlich auch nicht heraus)

godi
Beiträge: 7
Registriert: 30 Dez 2014 20:56
Kontaktdaten:

Re: CronJob und ZendFramework2

Beitrag von godi » 05 Jan 2015 10:13

Hallo,
nein so funktioniert das nicht.

Ich habe es jetzt anders gelöst:
Ich rufe mit curl_exec einen link von meiner HP auf, der Controller dahinter führt mir die nötigen Befehle aus.
Zur Absicherung damit von außen keiner die Action ausführen kann habe ich noch die IP Adressen abgefragt. Jedoch verwundert mich, dass die IP des Servers der den CronJob ausführt nicht die gleiche ist wie die des Webhosters.
Also

Code: Alles auswählen

$_SERVER["REMOTE_ADDR"] == $_SERVER["SERVER_ADDR"]
funktioniert nicht. Was funktioniert ist

Code: Alles auswählen

$_SERVER["REMOTE_ADDR"] == "81.19.145.238"
Das ganze ist natürlich alles andere als eine schöne Lösung, aber mit Zend\Console funktioniert es leider nicht auf diesem Webhoster.

MainziMan
Beiträge: 1149
Registriert: 04 Sep 2005 18:48

Re: CronJob und ZendFramework2

Beitrag von MainziMan » 05 Jan 2015 22:18

Du meinst die IP-Adresse des Webservers nicht des Webhosters;

um unbefugten Zugriff abzuwehren, solltest dies besser durch einen Verzeichnisschutz definieren; die IP-Adresse kann sich ändern, und dann sucht jemand verzweifelt nach der Ursache, wenn es dann nicht mehr geht ...

Antworten