Probleme beim Dateizugriff - Help!
Klaus
- php
Hallo zusammen,
ich versuche mit diesem PHP Script (PHP 4.03) auf einem IIS mit
fopen() in eine Datei "test.txt" zu schreiben.
$datei="test.txt";
$stringtowrite="Hallo Welt";
if ($fp=fopen($datei,"w+")) {
fwrite($fp,$stringtowrite);
fclose($fp);
}
$id = fileperms($datei);
$id = decoct($id);
echo "Zugriffsrechte der Datei $datei: $id";
chmod($datei,0777);
$id = fileperms($datei);
$id = decoct($id);
echo "Zugriffsrechte der Datei $datei: $id";
bekomme aber diese Fehlermeldungen:
Warning: fopen(test.txt): failed to open stream: Permission denied in
D:\kunden\vhosts...\httpdocs\test\testsave.php on line 8
Zugriffsrechte der Datei test.txt: 100666
Warning: chmod(): Permission denied in
D:\kunden\vhosts...\httpdocs\test\testsave.php on line 15
Zugriffsrechte der Datei test.txt: 100666
Seltsamerweise zeigt mir der FTP Client für die Rechte von test.txt "777" an, chmod liest aber nur "666" aus.
Der Fehler tritt übrigens nur auf einem IIS auf, das Script funktioniert auf einem Apache Server.
Hat jemand eine Idee, woran es liegt. Der Save Mode von PHP ist übrigens nicht aktiviert. Gibt es irgendwelche Tricks, wenn ich auf einem IIS mit PHP was speichern will? Kann ich das Problem lösen oder ist der IIS falsch konfiguriert?
Danke
Klaus
Hello,
Seltsamerweise zeigt mir der FTP Client für die Rechte von test.txt "777" an, chmod liest aber nur "666" aus.
Der FTP-Client wird wohl auch unter einem anderen User laufen, als das PHP auf IIS.
Windows hat generell eine andere Rechtestruktur, als Unix. Die eine wird so gut es geht in die andere abgebildet. Unter welchem User läuft denn PHP bei Dir?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
unter welchem Account PHP selber läuft weiss ich leider nicht.
Aber daran kann es nicht liegen, denn wenn ich per FTP der Dateirechte "777" zuweise, muss er speichern können. Oder?
Gruss
Klaus
Hello Klaus,
unter welchem Account PHP selber läuft weiss ich leider nicht.
Das solltest Du aber wissen, denn der benötigt die Rechte.
Aber daran kann es nicht liegen, denn wenn ich per FTP der Dateirechte "777" zuweise, muss er speichern können. Oder?
Einer Datei die "Rechte 777" zu geben, hat überhaupt keine Aussagekraft, wenn man nicht weiß, wem sie gehört, welcher Gruppe sie zugeordnet ist und wer in der Gruppe OTHERS ist. Die lezte Frage stellt sich bei Linux unter "Normaladminsitration" nicht, da alle, die überhaupt Zugang zum Server haben, in der Gruppe Others sind (nicht so bei NDS für Linux).
Aber bei Windows kann ich den IIS auch aus der Gruppe JEDERMANN entfernen.
Da die Dateirechte des Windes-Systems auf die eines "Winux" abgebildet werden, gibt es genügend Inheritence Filter, die dann die effektiven rechte des Users unter dem PHP läuft, schmälern.
http://www.dynamic-webpages.de/php/faq.installation.php#faq.installation.phpandiis
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
danke für Deine Nachricht.
Wie stelle ich denn fest, unter welchem Account PHP läuft? Kann man das per Script abfragen?
Und wie bekomme ich das Script denn dannzum Speichern? Vermutlich muss da mein Provider was ändern, oder?
Dank & Gruss
Klaus