PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cronjob


cooperraser
02.01.2009, 21:35:58
schönen guten tag, ich hab schon "gegooglt" aber nichts gefunden was mein problem behebt, habe einen cronjob eingerichtet der eine PHP-Seite aufruft die seite wird auch abgearbeitet bis auf das abspeichern einer zip-datei welche von einer anderen seite downgeloadet wird, fehlermeldung lautet "Cannot write to `artikelliste.zip' (Permission denied)." damit stirbt die weitere verarbeitung der php-seite
worum es da geht weiß ich, es kann wegen irgendwelchen rechnten das zip-file nicht abgespeichert werden, das ist mir schon klar, allerdings wenn ich die php-seite per browser aufrufe funzt es wie gewünscht, wie bekomme ich das hin das das zip-file abgespeichert wird, die php-seite hat eigentlich alle rechte also 777,

hat da einer die lösung bzw. einen vernünftigen ansatz????????

DokuLeseHemmung
02.01.2009, 21:39:03
getcwd() dürfte dir verraten warum es bei der einen Methode klappt und bei der anderen nicht!

Tipp für Faule:
Rufe die Datei per wget im Cron auf.

PS:
Übrigens sehe ich nix fortschrittliches an der Frage!
Die Doku nicht gelesen zu haben und sich mit Pfaden/Rechten nicht auszukennen ist keinesfalls sonderlich fortgeschritten. Ganz im Geigentiel.

cooperraser
02.01.2009, 22:18:10
also der tip mit getcwd() war ja lustig :), das es daran nicht liegen kann das der pfad nicht stimmt hätte ja auch auffallen müssen wenn das script per browser aufgerufen wird und auch da nicht funzen würde, aber wie zu lesen war funzt das ja, und das es an den rechten liegt ist mir auch bewusst, das habe ich auch schon geschrieben, mit wget hatte ich es auch schon mal probiert und das funzte auch nicht, mach ich aber gerade nochmal und werde hier gerne das ergebnis posten

DokuLeseHemmung
02.01.2009, 22:21:17
Wenn ich "funzen" schon höre....
Und Tschüss...

cooperraser
02.01.2009, 22:22:45
Resolving www.xxxxxx.com... 74.128.80.242
Connecting to www.xxxxxx.com|74.128.80.242|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
test.php: Permission denied

Cannot write to `test.php' (Permission denied).

cronjob lautet: wget http://www.xxxxxx.com/hersteller/test.php

und funzt nicht

kein schreibschutz oder sonstwas, also wget funzt schon mal nicht

vt1816
03.01.2009, 11:20:48
Was ergab der Rechte-Check?

DokuLeseHemmung
03.01.2009, 11:34:51
@vt1816
wget ist für PHP nix anderes als ein Browser .....

vt1816
03.01.2009, 17:52:51
@vt1816
wget ist für PHP nix anderes als ein Browser .....

Ist mir schon bekannt.


Warum hast Du aber
Also ist es mit an Sicherheit grenzender Wahrscheinlichkeit kein Rechte Problem.
wieder gelöscht?

DokuLeseHemmung
03.01.2009, 19:01:36
Weil die Meldung des TE doch sagt, dass es ein Rechte Problem ist!

Da allerdings der TE Code, Aufruf und benutzte Pfade trotz milder Aufforderung geheim hält und auch keinen Link liefert, ist es doch mit der Sicherheit nicht so ganz weit her....
(man/ich muß auch klein bei geben können)
Nunja, im Browser tuts, und im Wget nicht. Der Wiederspruch muß aufgelöst werden, sonst kommt man nicht an die Ursache.

Aber was solls, wenn ich für getcwd() ausgelacht werde, interessiert mich das ganze Problem incl. TE nicht mehr...
Weil:
Ich für meinen Teil weiß ganz genau, dass ich, am Putty/FTP/Editor sitzend, das Problem in 5 Minuten aufgedröselt hätte.

Morrandir
04.01.2009, 12:08:38
Ähm... ich weis ja nicht genau... aber wenn da steht:
Cannot write to `test.php' (Permission denied).
Bedeutet das doch das wget die Datei "test.php" lokal nicht speichern kann, oder sehe ich das Falsch... denn der Server liefert ja "200" zurück - normalerweise müsste doch bei Fehler (oder nicht erlaubten zugriff) vielleicht n "401" oder "403" (bzw. generell 40X) liefern, oder nicht?

Ich stimme in diesem Fall mal DokuLeseHemmung zu, dass du gefälligst mal getcwd() einsetzen könntest, dann weist du wo das Skript läuft => dann weist du wo wget aufgerufen wird und dann kannst du auch LOKAL bei dir nachschauen, ob du in dem Verzeichnis wo wget läuft auch Schreibrechte hast...

(kann nämlich sein, dass du schön wget aufrufst und dabei wget sein standard-/start-verzeichnis als lokalen pfad annimmt, dieser ist aber sicher für PHP zum schreiben gesperrt - sonst könnte ja jedes PHP-Skript auch die ganze Server-Festplatte vollschreiben, und zwar wo und wann es ihm beliebt)

Gruß
Andi

cooperraser
10.01.2009, 22:32:59
<?php

// aktuelles Verzeichnis
echo getcwd() . "\n";

chdir('test');

// aktuelles Verzeichnis
echo getcwd() . "\n";

?>

das habe ich als test.php ausgeführt

und das war das ergebnis /var/www/webxx/html/hersteller /var/www/webxx/html/hersteller/test

keine fehlermeldung oder so,
und nochmal, wenn ich das script im browser aufrufe dann "funktioniert" auch das abspeichern der geladenen zip-datei, nur wenn das php-script vom server selber aufgerufen wird, dann funzt es nicht, es ist ein rechteproblem nur weiß ich nicht wie ich es lösen kann, das script hat vollrechte also 777
ich hatte auch irgendwo mal was gelesen von eigentümer der datei, wenn der server eine datei aufruft dann ist der server der eigentümer glaub ich und da sind die rechtevergabe wohl anders, aber ich weiß es leider nicht mehr genau, deshalb frag ich ja auch

sorry aber ich find immer so leute ganz witzig die immer eine grosse fre... haben, scheinbar auch nicht lesen können und große töne spucken aber ehrlich gesagt nichts zu einer lösungsfindung beitragen können
denke mal der jenige wird schon wissen wen ich meine, den anderen danke ich für ihre bemühungen und anregungen, mfg
problem besteht weiterhin und ich bin weiterhin auf eure hilfe angewiesen, danke

DokuLeseHemmung
11.01.2009, 12:24:03
Hier noch mal der mit der großen Fresse!

Nach dem du ja jetzt die getcwd() Ausgabe von der funktionierenden Datei gezeigt hast, zeige sie doch auch von der nicht funktionierenden direkt aufgerufenen PHP Datei.
Wie soll man denn sonst vergleichen können?



Cannot write to `test.php'
Warum willst du da eine test.php überschreiben?


nur wenn das php-script vom server selber aufgerufen wird, dann funzt es nicht,
Dann zeige doch mal den Aufruf!
Oder ist das alles geheim?


ich hatte auch irgendwo mal was gelesen von eigentümer der datei, wenn der server eine datei aufruft dann ist der server der eigentümer glaub ich und da sind die rechtevergabe wohl anders, aber ich weiß es leider nicht mehr genau, deshalb frag ich ja auch
Woher sollen wir deine Konfiguration kennen?
Das kannst nur du in Erfahrung bringen.
Und nein, es macht keinen Unterschied, ob die Datei per Browser oder per wget aufgerufen wird. Es sei denn du schießt beim Aufruf einen Bock! (aber der ist ja geheim)


Und mäßige deinen Ton !!!
Wenn du keine Infos rausrückst, kann man dir nicht helfen. Das ist Fakt. Da hilft auch kein Treten und Beißen.