PHP und Crontab

Marcel44

Active member
ID: 273809
L
16 Februar 2007
39
1
Ich hab wieder ein Problem ich möchte eine PHP-Datei per Crontab ausführen lassen ich hab schon folgendes probiert:
Code:
0-59 	0-23 	1-31 	1-12 	1-7 	php /var/www/html/web836/html/newsletter_mailer.php
und
Code:
0-59 	0-23 	1-31 	1-12 	1-7 	php - f /var/www/html/web836/html/newsletter_mailer.php
was aber beides nicht funktioniert.
 
Also statt 0-59 0-23 und so weiter kannst du jeweils ein * einsetzen.

Geht denn ein ganz normaler Aufruf der php-Datei mittels des php-Befehls? Ist die aufgerufene newsletter_mailer.php fehlerfrei?
Und du willst sie wirklich in jeder Minute ein mal aufrufen?
 
Also die Datei ist Fehlerfrei wenn ich sie aufrufe gehts ja.
Ich habs nur zum Testen auf jede Minute gestellt.
Der Crontab kann die Datei nicht öffnen diese meldung bekomme ich immer.
 
Hast du es schon mit einem anderen Befehl versucht? wget wäre zum Beispiel etwas, was funktionieren dürfte.
 
Funktioniert auch nicht dann kommt die Meldung:
/bin/sh: wget: command not found
habs so geschreiben:
Code:
* * * * * wget /var/www/html/web836/html/newslettermailer.php
 
Es würde vllt. auch helfen, den Befehl wget nachzuinstallieren. Falls es dein eigener Server sein sollte, kannst du das selbst machen, ansonsten den Hoster fragen...

Hier noch ein paar Möglichkeiten, ein PHP-Script per Cron auszuführen

Mittels curl:
Code:
0 * * * * curl -s -o /dev/null https://www.example.com/script.php

Mittels wget (wie schon erwähnt):
Code:
0 * * * * wget -q -O /dev/null https://www.example.com/script.php

Mittels fetch:
Code:
0 * * * * fetch -o /dev/null https://www.example.com/script.php

Mittels Lynx:
Code:
0 * * * * lynx > /dev/null -dump https://www.example.com/script.php

Bei allen Varianten müssen URLs verwendet werden. Serverpfade funktionieren nicht und die entsprechenden Programme müssen auf dem Server installiert sein!
 
Zuletzt bearbeitet:
Ok dankschön schonmal soweit.
Aber wo finde ich die Dateien die ich dafür installieren muss falls es nicht geht?

edit:
ging was schief ich probier jetzt alle eben hat was nicht geklappt.
 
Zuletzt bearbeitet:
Ist der PHP-Kommandozeilen-Interpreter installiert?
Was passiert, wenn du auf der Kommandozeile 'php' eingibts?
 
Hast du Zugriff auf eine Konsole? Oder wie erstellst du die Cronjobs? Als erstes wäre es mal sinnvoll rauszufinden ob das Script über ein Serverpfad ausgeführt werden kann... am einfachsten geht das in dem man einfach auf der Konsole "php /var/www/html/web836/html/newsletter_mailer.php" eingibt. Wenn dieses Script nicht dafür ausgelegt ist über die Konsole aufgerufen zu werden ist die wahrscheinlichkeit groß das es nicht klappt. (Hauptproblem ist meistens der Ausführungspfad) Das sieht man dann aber weil man x Fehlermeldungen auf der Konsole bekommt.

Also versuch dass erstmal festzustellen und dann kann man immer noch weiter sehen. (wird aber daran leigen) Wenns daran leigt man das Script anpassen, oder man ruft das Script über HTTP auf. Wie das geht hat morpheus1510 in zich Varianten schon gepostet.
 
Also die Crons lege ich in Confixx an.
Aber das mit php /var/... hat nicht geklappt.
Das komische is es hatte so mit einer anderen Datei mal geklappt.
 
wie oben geschrieben KOMPLETTE Pfadangaben bitte (/usr/bin/php)

Crons werden OHNE definierte Umgebung gestartet also auch keine PATH Variable
 
ich hatte ähnliche probleme. habs mit folgendem code lösen können
lynx --dump "https://www.deineseite.de/datei.php" > /dev/null
wichtig waren/sind die anführungszeichen ("gänsefüschen"*g) vor und hinter der domain. damit hats letztendlich bei mir geklappt.