Heim > Backend-Entwicklung > PHP-Problem > So beheben Sie den Fehler bei der PHP-Schreibdateiberechtigung file_put_contents: Fehler beim Öffnen des Streams: Berechtigung verweigert

So beheben Sie den Fehler bei der PHP-Schreibdateiberechtigung file_put_contents: Fehler beim Öffnen des Streams: Berechtigung verweigert

步履不停
Freigeben: 2023-02-23 06:34:02
Original
10933 Leute haben es durchsucht

So beheben Sie den Fehler bei der PHP-Schreibdateiberechtigung file_put_contents: Fehler beim Öffnen des Streams: Berechtigung verweigert

Problem

Die Methode file_put_contents wird heute in der Protokollschreibmethode verwendet. Wenn die Rückrufmethode zum Schreiben des Protokolls ausgeführt wird, wird angezeigt, dass keine Schreibberechtigung vorliegt zur Datei und eine Fehlermeldung

file_put_contents: failed to open stream: Permission denied (PHP-Video-Tutorial)

Lösungsprozess

Überprüfen Sie die Berechtigungen des Protokollordners, da er täglich generiert wird. Der Ausführungsbenutzer ist Root, daher sind sowohl der Benutzer als auch die Benutzergruppe für die Erstellung des Ordners Root In der Rückrufmethode ist www und in der Schreibmethode

 if(!is_dir($dir)){
        mkdir($dir,0777,true);
    }
Nach dem Login kopieren

Wenn das Verzeichnis nicht vorhanden ist, erstellen Sie das Verzeichnis, legen Sie jedoch beim Erstellen des Ordners in der mkdir-Funktion von PHP 777-Berechtigungen fest. Tatsächlich hat die erstellte Datei noch 755 Berechtigungen. Im Linux-System gibt es eine Standardberechtigung beim Erstellen von Dateien/Ordnern. Diese Berechtigung wird durch die umask-Einstellung beeinflusst. In der Konfigurationsdatei /etc/bashrc finden wir die folgende Konfiguration:

if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002else
        umask 022fi
Nach dem Login kopieren

Standard-umask im Linux-System ist es 022, und nach dem Betrieb mit unserem 777 & wird es 755. Dies ist der Grund. Die Einstellungen hier wirken sich direkt auf die Standardberechtigungseinstellungen des Linux-Systems aus und sind nicht nur ein PHP-Problem. Daher wird nicht empfohlen, es direkt zu ändern, um 022 in 000 zu ändern.

Endgültige Lösung

Erstellen Sie zuerst das Verzeichnis und ändern Sie dann mit chmod die Berechtigungen auf 777

mkdir('test', 0777);
chmod('test', 0777);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo beheben Sie den Fehler bei der PHP-Schreibdateiberechtigung file_put_contents: Fehler beim Öffnen des Streams: Berechtigung verweigert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage