Page 1 of 1

system(wget); problem über php

Posted: 2005-08-25 18:13
by bratwurstschorsch
Hallo,

ich habe seit kurzem root zugriff auf einen server von meinem freund. er liegt bei strato und ist mit confixx konfiguriert. als server läuft ein apache2.
nun möchste ich gerne über ein php script eine datei downloaden. leider funktioniert es nicht. auf einem anderen server hat es jedoch bereits funktioniert. hier kurz mal das script:

Code: Select all

system("wget 'http://partners.affili.net/partners/ass/csvAutoDownload.asp?PartnerID=XXXXX&csvPW=XXXXX&listID=XXX'");
php habe ich extra auf safe_mode Off gestellt. (übrigens: Version 4.3.3)
wenn ich den befehl system(wget 'url', $result) mache und mir result ausgeben lasse, wird der Wert "1" ausgegeben.

nun habe ich auch mal in die error.log geschaut und kopiere mal einen auszug davon hier rein:

Code: Select all

--17:49:28--  http://partners.affili.net/partners/ass/csvAutoDownload.asp?PartnerID=xxxxx&csvPW=xxxxx&listID=xxx
           => `csvAutoDownload.asp?PartnerID=xxxxx&csvPW=xxxxx&listID=xxx'
Resolving partners.affili.net... done.
Connecting to partners.affili.net[xxx.x.xxx.xx]:xx... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
csvAutoDownload.asp?PartnerID=xxxxx&csvPW=xxxxx&listID=xxx: Permission denied

Cannot write to `csvAutoDownload.asp?PartnerID=xxxx&csvPW=xxxxxx&listID=xxx' (Permission denied).
[Thu Aug 25 17:49:29 2005] [error] [client xx.xx.xxx.xxx] File does not exist: /srv/www/htdocs/web9/html/favicon.ico
ich hoffe jemand weiss wie ich das problem lösen kann. eine datei ist nie angekommen und das script war nach einer sekunde beendet. im browser gabs keine fehlermeldungen

ach und wenn ich den befehl so ausführe:

Code: Select all

system("wget -t 1 -P /srv/www/htdocs/web9/html/blabla -O /srv/www/htdocs/web9/html/blabla/datei.csv 'http://partners.affili.net/partners/ass/csvAutoDownload.asp?PartnerID=xxxxx&csvPW=xxxxxxxxx&listID=xx'");
kommt diese fehlermeldung in der error.log

Code: Select all

/srv/www/htdocs/web9/html/blabla/datei.csv: Permission denied
[Thu Aug 25 17:57:42 2005] [error] [client xx.xx.xxx.xxx] File does not exist: /srv/www/htdocs/web9/html/favicon.ico
muss ich da irgendwas an den rechten ändern. weiss leider überhaupt nicht wo :( oder was ich ändern soll. irgendwie muss es ja gehen.

gruss

bratwurstschorsch

Re: system(wget); problem über php

Posted: 2005-08-25 19:40
by flo
1) PHP als cgi installieren und hoffen, daß dann die Permissions fürs Home korrekt sind.

2) chmod o+w /srv/www/htdocs/web9/html/blabla

3) Mit Hintergründen: Gib dem User des Apachen Schreibrechte auf das Zielverzeichnis ohne dabei dann für alle User das Verzeichnis zu öffnen. --> man chown bzw. man chmod

flo.

Re: system(wget); problem über php

Posted: 2005-08-26 00:51
by bratwurstschorsch
also ich habe mal der datei die rechte "777" gegeben. damit funktioniert es.

Re: system(wget); problem über php

Posted: 2005-08-26 08:10
by flo
Das war klar ... ;-)

Es wäre trotzdem etwas eleganter und auch sicherer, die Rechte nach der tatsächlichen Erfordernis zu vergeben.

flo.

Re: system(wget); problem über php

Posted: 2005-08-26 12:42
by bratwurstschorsch
ja das stimmt natürlich, aber da fehlt mir momentan leider noch das fachwissen. beschäftige mich seit ca. 2 wochen zum ersten mal mit nem server und mit linux und das auch nur sobald etwas nicht funktioniert. bin aber fast der einzige, der den serer nutzt und daher entsteht kein risiko von seiten der anderen user. werd es aber bei gelegenheit mal irgendwie anders versuchen.

trotzdem danke :)

gruss

bratwurstschorsch

Re: system(wget); problem über php

Posted: 2005-08-26 12:52
by captaincrunch
Ich schließe hier einfach schon mal kopfschüttelnd diesen Thread... 8O