failed to open stream: Permission denied
sausage
- php
Halli, Hallo,
vllt kennt ihr das Prob schon, aber
mir ist nun vorgekommen das folgende Fehlermeldung bei
einem fopen() versuch bekomme.
Leier kann ich die funktion chmod() setzten wo ich will,
es kommt immer die selbe meldung. auch das die datei nicht existiere (bei chmod) weil sie ja dank mangelnder Berechtigung nicht erstellt werden darf.
ich bitte um eine Antwort die das erstellen von dateien erlaubt und dabei die berechtigungen setzt (777)
danke im vorraus
mfg
hallo,
vllt kennt ihr das Prob schon
Du meinst, vielleicht sei "uns" dein Problem bekannt, übersetze ich das richtig?
mir ist nun vorgekommen das folgende Fehlermeldung bei
einem fopen() versuch bekomme.
Leier kann ich die funktion chmod() setzten wo ich will
Eine Fehlermeldung "Leier kann ich die funktion chmod() setzten wo ich will" ist mir noch nie begegnet.
Vielleicht hilft es ja, wenn du deinen Code als Textdatei irgendwo hochlädat, damit man nachschauen kann, wie du es anstellst, eine derart seltene und schlecht formulierte Fehlermeldung zu erhalten.
Grüße aus Berlin
Christoph S.
Moin sausage,
einem fopen() versuch bekomme.
Leier kann ich die funktion chmod() setzten wo ich will,
wir brauchen da wohl etwas mehr Info. Wird fopen auf eine bestehende Datei losgelassen, oder auf eine neu zu erstellende Datei.
Wenn Du keine entsprechenden Rechte auf das Verzeichnis oder die Datei hast, dann bringt Dich der chmod natürlich auch nicht weiter.
Wir brauchen also mehr Details:
Bis dahin
regds
Mike©
hallo Mike© ,
wir brauchen da wohl etwas mehr Info.
ACK.
Wird fopen auf eine bestehende Datei losgelassen, oder auf eine neu zu erstellende Datei.
Da wird man noch mehr differenzieren müssen und beispielsweise fragen, wie fsockopen in der php.ini festgelegt ist.
Wenn Du keine entsprechenden Rechte auf das Verzeichnis oder die Datei hast
Die scheinen korrekt zu sitzen, obwohl 777 für PHP-Scripts eigentlich viel zu viel ist.
Grüße aus Berlin
Christoph S.
Moin Christoph,
Wenn Du keine entsprechenden Rechte auf das Verzeichnis oder die Datei hast
Die scheinen korrekt zu sitzen, obwohl 777 für PHP-Scripts eigentlich viel zu viel ist.
woher nimmst Du diese Info. Zunächstmal reicht ja für eine Datei 666 völlig aus (und kann noch weiter eingeschränkt werden)
Aber, wir wissen weder ob es sich um eine TXT Datei handelt, geschweige den um ein PHP Datei. Woher hast Du diese Info?
Ich staune, Du scheinst heute die Glaskugel de Luxe ausgepackt zu haben.
Ich gehe mal davon aus, das es sich hier um das beliebte Problem des unterschiedlichen FTP und PHP bzw. WebServer User handelt.
regds
Mike©
hallo Mike© ,
Du scheinst heute die Glaskugel de Luxe ausgepackt zu haben.
Nö, ich habe nur das OP aufmerksam gelesen - so lang ist es ja nicht.
Grüße aus Berlin
Christoph S.
Moin Christoph,
Nö, ich habe nur das OP aufmerksam gelesen - so lang ist es ja nicht.
und dort besteht der einzige Hinweis daraus:
[...]ich bitte um eine Antwort die das erstellen von dateien erlaubt und dabei die berechtigungen setzt (777)[...]
Du schriebst: [...]Die scheinen korrekt zu sitzen[...]
Aha, welche Rechte sind denn nun gesetzt?
Du schriebst: [...]obwohl 777 für PHP-Scripts eigentlich viel zu viel ist[...]
Woher weißt Du das es um PHP Scripte geht, oder war das nur eine Bemerkung am Rande?
Sollte ich total daneben liegen, dann biete ich um Verzeihung.
Ansonsten schaue mal ob am Boden deiner Galskugel de Luxe noch der Bepper drauf ist "Made in Taiwan"
regds
Mike©
hallo Mike© ,
Woher weißt Du das es um PHP Scripte geht
Aus der Überschrift. "(PHP) failed to open stream: Permission denied" sieht doch unzweifelhaft danach aus, daß hier eine PHP-Frage vorliegt.
Grüße aus Berlin
Christoph S.
Moin Christoph,
Aus der Überschrift. "(PHP) failed to open stream: Permission denied" sieht doch unzweifelhaft danach aus, daß hier eine PHP-Frage vorliegt.
Yep, aber ich glaube wir reden aneinander vorbei.
Natürlich geht es um PHP, aber die zu berabeitende Datei ist doch keine PHP Datei. Aber Dein Kommentar läßt dies so erscheinen.
[...]obwohl 777 für PHP-Scripts eigentlich viel zu viel [...]
Lasse es uns hier abbrechen, und mal sehen was der OP beitragen kann.
regds
Mike©
echo $begrüßung;
Wenn Du keine entsprechenden Rechte auf das Verzeichnis oder die Datei hast
Die scheinen korrekt zu sitzen, obwohl 777 für PHP-Scripts eigentlich viel zu viel ist.
woher nimmst Du diese Info. Zunächstmal reicht ja für eine Datei 666 völlig aus
Also 777, was oktal 1411 entspricht, ist deutlich zu wenig, wenn der Webserver nicht unterm gleichen Benutzer läuft wie der Dateiersteller.
Das entspricht r-- --x --x *)
Der User kann es lesen, Gruppe und Andere nur ausführen. Aber ohne eine Datei lesen zu dürfen wird man sie sicher auch nicht ausführen können.
666, also oktal 1232 ist auch nicht viel besser. -w- -wx -w- *)
Vielleicht hat sausage die Beschreibung zu chmod() im Handbuch nicht richtig gelesen oder verstanden, denn die sagt deutlich, dass statt dem dezimalen 777 die Oktalschreibweise, also 0777, zu verwenden sei, wenn man rwx rwx rwx meint.
Ansonsten wäre noch hilfreich zu wissen,
echo "$verabschiedung $name";
*) Das Sticky-Bit lasse ich mal unter den Tisch fallen.
ALSO,
die folgenden punkte sind die die ihr anscheinend soo dringend benötigt:
(übrigens: dieses prob habe ich auch mit mkdir())
hier ein link:
http://www.doenemeier.de/forum/login.php
mit diesen Daten könnt ihr euch einloggen:
user: patermaximus
passwort: geheim
schon beim versuch auf die bereits bestehende datei online.txt zu schreiben kommt der fehler (diese datei existiert schon).
Moin sausage,
- die rechte das verzeichnisses habe ich schon auf 777 stehen.
gibt es ein übergeordnetes Verzeichnis?
regds
Mike©
Hi Mike,
gibt es ein übergeordnetes Verzeichnis?
ja, das gibtes, das steht auf chmod(777)
aber trotzdem kommen immernoch Fehler wenn ich etwas erstellenwill.
Moin sausage,
ja, das gibtes, das steht auf chmod(777)
aber trotzdem kommen immernoch Fehler wenn ich etwas erstellenwill.
bitte poste mal die fopen() Zeile mit all den dazugehörigen (befüllten) Variablen
regds
Mike©
Hallo sausage.
gibt es ein übergeordnetes Verzeichnis?
ja, das gibtes, das steht auf chmod(777)
Ein Verzeichnis kann nicht auf einem Kommando stehen.
aber trotzdem kommen immernoch Fehler wenn ich etwas erstellenwill.
Einen schönen Montag noch.
Gruß, Ashura
Moin sausage,
ja, das gibtes, das steht auf chmod(777)
aber trotzdem kommen immernoch Fehler wenn ich etwas erstellenwill.
alle unten aufgeführten Verzeichnisse haben 777? Beginnend bei /home
/home/doenemeier-de/htdocs/forum
regds
Mike©
alle unten aufgeführten Verzeichnisse haben 777? Beginnend bei /home
/home/doenemeier-de/htdocs/forum
ja so ungefähr, nicht ganz.
/home/doenemeier-de/htdocs/forum/foren
ich habe die themen und Threads in ein eigenes verzeichnis gepackt, sollte aber keinen unterschied machen. auf alle fälle:
der Ordner "foren" hat 0777 und alle ordner darunter auch.
(auch die mit mkdir() erstellten haben 0777).
trotzdem aber gelingt es nicht eine enthaltene .txt zu editieren oder gar zu erstellen. (wobei editieren noch einfach zu lösen wäre, da die datei ja schon existiert und chmod() nicht fehlschlägt.)
Moin sausage,
alle unten aufgeführten Verzeichnisse haben 777? Beginnend bei /home
/home/doenemeier-de/htdocs/forum
ja so ungefähr, nicht ganz.
/home/doenemeier-de/htdocs/forum/foren
der Ordner "foren" hat 0777 und alle ordner darunter auch.
(auch die mit mkdir() erstellten haben 0777).
ja, und alle darüber?
-home
-doenemeier-de
-htdocs
Wenn die alle 777 haben, dann poste doch bitte den Funktionsaufruf fopen().
regds
Mike©
ja, und alle darüber?
-home
-doenemeier-de
-htdocsWenn die alle 777 haben, dann poste doch bitte den Funktionsaufruf fopen().
ob /home/ oder /doenemeier-de/ oder /htdocs/ 0777 haben, darauf habe ich keinerlei enfluss.
der funktionsaufruf ist so wie jeder andere:
$fp = fopen($datei,"wb");
Moin sausage,
ob /home/ oder /doenemeier-de/ oder /htdocs/ 0777 haben, darauf habe ich keinerlei enfluss.
der funktionsaufruf ist so wie jeder andere:
$fp = fopen($datei,"wb");
dann verweise ich ebenfalls mal auf die Fragen von dedlfix.
https://forum.selfhtml.org/?t=134243&m=870711
regds
Mike©
Die Antworten auf dedlfix fragen
findet ihr auf diesem Link:
http://www.doenemeier.de/phpinfo.php
da ich mich mit sowas nicht sonderlich auskenne.
Schreiben und ändern und lesen soll php.
Moin sausage,
Die Antworten auf dedlfix fragen
findet ihr auf diesem Link:
http://www.doenemeier.de/phpinfo.php
ich muss fairer Weise kapitulieren. Hat jemand der Forumsteilnehmer noch einen Tipp?
Mike©
echo $begrüßung;
Die Antworten auf dedlfix fragen
findet ihr auf diesem Link:
http://www.doenemeier.de/phpinfo.php
- wem das Verzeichnis gehört, in das geschrieben werden soll, und wie die Rechte gesetzt sind,
unbeantwortet
- welcher User die Datei schreiben soll,
vermutlich der wwwrun, also der User unter dem der Apache läuft
- welcher sie lesen soll,
vermutlich auch der wwwrun
- ob PHP im Safe-Mode läuft, falls es als Apache-Modul installiert ist.
nein.
Das ist schon mal etwas, aber noch nicht genügend Information, um den Fehler nachzustellen. Hast du Shell-Zugriff auf der Kiste? Wenn ja, was zeigt denn "ls -la" an, wenn du dich in dem Verzeichenis befindest? Wenn nein, was ergibt folgendes Miniscript für eine Ausgabe:
<pre>
<?php echo `ls -la`;
Desweiteren hätte ich gern den relevanten Code-Teil gesehen. Versuche bitte ebenfalls ein kleinstmögliches Script zu erstellen, mit dem das Problem nachstellbar ist.
da ich mich mit sowas nicht sonderlich auskenne.
Das ist kein Problem, solange du genau die Fragen beantwortest, die dir gestellt werden. Es ist nicht schlimm, wenn du sie nicht gleich verstehst, aber dann solltest du lieber noch mal nachfragen, als sie zu ignorieren.
echo "$verabschiedung $name";