|
|||
![]()
Hi,
ich da ein Problem mit Cronjobs. Ich habe ein php Script geschrieben welches zu testzwecken eine Log Datei beschreibst (und wenn sie nicht exisitent ist diese erstellt). Wenn ich dieses Skript vom Browser aus, ausführe (also wenn es von Webseitenbesuchern gestartet wird) dann funktioniert es problemlos, erstellt die datei und fügt einen Log Eintrag ein, bei jedem weiteren Aufruf trägt es einfach nur einen weiteren Logeintrag ein. Das Problem, ist nur das wenn die Datei als Cronjob gestartet wird dann trägt sie keinen Eintrag in die Logdatei ein, ich bin jetzt dabei zu Testen ob das Script es tut wenn sie die Logdatei vorher selbst erstellt hat (die Datei also dem Benutzer gehört welcher die Cronjobs ausführt) allerdings vermute ich das auch dies nichts bringen wird. Mein Provider hat keinen Fehler im Script festgestellt, und konnte mir nur mitteilen das es womöglich an den Benutzerrechten liegt. Das Verzeichnis hat die Benutzerrechte 755 (höhere kann ich auch nicht einstellen) und die per Browser erstellten Logdateien haben die Rechte 644. Dennoch funktioniert das Beschreiben der Logdatei per Browser. Was kann ich tun? Sollte ich den Benutzer auf den Cronjobbenutzer ändern? Wie finde ich den Namen des Cronjobnutzer herraus? Was könnte es sonnst noch für Gründe geben wieso das Sript, wenn es als Cronjob gestartet wird (und das wird es), die Datei nicht beschreieben kann? Ich meine wenn der User mit dem über den Browser gestartetem Sript eine Log Datei beschreiben kann dann doch bestimmt nicht weil der Server den Browseruser als Besitzer der Datei erkennt oder doch? Vermutlich tut er das auch nicht, denn das PHP Script wird ja Serverseitig ausgeführt. Jetzt wo ich das schreibe ist es auch logisch. Allerdings löst es mein Problem dennoch nicht. |
Sponsored Links |
Sponsored Links |
|
|||
![]()
Das mit 755 nur der Besitzer Schreibrechte hat ist schon klar, da die Sache aber über den Browser funktioniert aber nicht über den Cronjob, vermute ich das der Cronjobuser nicht der Browseruser ist (klingt jetzt blöd aber ich denke du /ihr wisst was ich meine). Deshalb wird es wohl nur so laufen das ich den Besitzer der log Dateien auf den Cronjob user Umstelle, denn leider darf ich bei meinem Provider oder Hoster, keine höheren Rechte als 755 vergeben. Also wird es wohl darauf hinauslaufen das ich das Skript nur per Cronjob ausführen kann, es wäre zwar nutzlich das auch Manuell ausführen zu können, aber da die Cronjob funktionalität zwingend nötig ist muss ich darauf verzichten.
Also werde ich jetzt mit einem anderen Script den Dateibesitzer auf den Cronjobuser umstellen müssen, da ich aber nicht weiß welcher User der Cronjobuser ist, versuchte ich gerade mit einem Cronjob ein Verzeichnis zu erstellen und daran dann den Username bzw. dessen ID ablesen zu können, ich bezweifele aber das das möglich ist denn, alle Verzeichnisse gehören dem selben Nutzer (dem PHP User) und haben alle die rechte 755, also wird der Cronjob wohl kein Verzeichnis oder auch nur eine Datei erstellen können, da er keine Schreibrechte besitzt. |
|
||||
![]()
Was ist mit der crontab? Wie setzt du denn den cronjob rein? In der crontab wird normalerweise immer auch der User festgelegt unter welchem ein cronjob in dem Falle dein Skript gestartet wird. Da müsstest du einfach deinen www-User angeben und wärst damit deine Probleme los
![]() |
|
|||
![]()
Ich drück es mal so aus, meine Seite wird von Kontent gehostet, und dort kann ich die Cronjobs nur rudimentär einstellen d.h. ich kann einen Zeitraum bzw. Zeitpunkt einstellen zu dem ein ebenfalls einstellbares Script ausgeführt wird und das war es dann. Mehr kann ich leider nicht machen.
|
|
||||
![]()
Dann würde ich das als "Fehler" beim Hoster sehe und da mal anfragen. Andere dürften da ja ähnliche Probleme haben, wenn die per cron gestarteten Skripte mit einem anderen User ausgeführt werden. Zumindest fragen schadet nichts...
|
|
|||
![]()
Ich werde nochmal anfragen, aber mich irritiert gerade das ich in der Beschreibung zu den Cronjobs lese, das man die auch gut Nutzen kann um überschüssige Logdateien zu löschen, wenn die das also schreiben muss es möglichsein. Nur scheint es mit dieser Konstellation: Cronjobuser ist nicht der Besitzer der Dateien, und die Rechte sind gleichzeitig darauf beschränkt das nur der Besitzer Dateien schreiben darf.
Gar nicht funktionieren zu können. |
|
||||
![]()
Wenn die Cronjobs als root ausgeführt werden sollte es auch kein Problem sein irgendwas zu löschen oder zu erstellen, ich kann mir allerdings nicht vorstellen, dass dein Provider jeden da mit rootrechten rumhampeln lässt
![]() Ohne mehr Informationen zu haben kann man eigentlich nur wild spekulieren... |
![]() |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Automatische PHP Gallerie funktioniert noch nicht ganz... | pkipper | Serveradministration und serverseitige Scripte | 0 | 05.11.2010 14:58 |
php script funktioniert nicht... Hilfe... | Argon007 | (X)HTML | 8 | 27.06.2010 02:20 |
IRC Register script funktioniert nicht! :( | webseite_freaky | Javascript & Ajax | 0 | 27.07.2009 18:33 |
PHP Script mit GET-Parametern als Img-Src | Ares | Serveradministration und serverseitige Scripte | 2 | 13.09.2008 22:19 |