SELinux Einflüsse "failed to open stream: Permission denied" - PHP-Fehler

Gestern habe ich 5 Stunden am Stück die Entdeckung einer scheinbar unzumutbaren Fehler "failed to open stream. permission denied", die auftreten, nachdem alle Vorgänge des Schreibens in die Datei system: fopen (mit "w" und "a" - flags), move_uploaded_file, file_put_contents.

Habe ich erneut geprüft, viele Male Verzeichnisse Besitzer (Benutzer-und Gruppen - chown, chgrp), haben ändern Sie Ordner-Attribute, um unsichere 777 (rwx mit chmod), aber es hat keine Wirkung. Ich habe sogar neu installiert, Apache und PHP, aber immer noch mit den gleichen Fehler.

Als es erschien nach Stunden des Lesens verschiedene Dokumentation der Herkunft der Fehler war SELinux-Beschränkungen automatisch angewendet, für den Apache-Dienst httpd. Ich habe einfach deaktiviert SELinux durch Bearbeiten /etc/selinux/config Datei auf meinem Fedora (release 20) über die Linie zu ändern:

SELINUX=enforcing

zu

SELINUX=disabled

Ich meinen computer neu gestartet und lästige Fehler endlich verschwunden.

Habe ich zu bemerken, dass alle Fragen, die bei Stack Overflow über das Thema "permission denied" auf die LAMP-Umgebung berühren, nur die Ordner die Berechtigung betrifft, das war nicht der Fall in meinem Fall.

  1. (praktische) Wie kann ich gewähren, Apache httpd service schreiben, löschen, aktualisieren Berechtigungen auf Verzeichnis ohne völlig deaktivieren von SELinux?

  2. (theoretische) Was ist SELinux? Was ist es gedacht? Warum (aus welchem Grund) es erstellt wurde? Warum sollte ich es verwenden? Gibt es einen Grund zu halten, aktiviertem SElinux auf lokalen dev-Maschine?

ausschließlich für die Moderatoren der Ressource: ich weiß, dass dieses Thema deckt mehr die Verwaltung als die eigentliche Programmierung, aber ich bin sicher es wirkt sich auf Entwickler, die in viel schwereren Weg als, sagen wir unerfahrenen Administratoren, so dass die Wahl zwischen SuperUser und StackOverflow-ich nahm letztere. Allerdings ist es an Ihnen, ob Sie die Frage an die SuperUser-oder halten Sie an dieser Stelle.

  • Das klingt für mich wie eine Frage, die ist besser geeignet für die serverfault.com
  • Es ist schon eine Weile her, seit ich versuchte ein SELinux-system - für die lokale dev fand ich es übermäßig gesperrt. Ich würde schalten Sie es lokal, aber ich erwarte, dass es ist nützlich in der Produktion.
  • Ich denke für den administrator es ist eine sehr häufige-und wahrscheinlich weit bekanntes Problem (wie "warum sollte ich verwenden inhertiance" für Programmierer), aber für die Programmierer, die es werden könnten, sehr hilfreich - wenn ich finden würde, einige ähnliche Themen in Suchmaschinen-Indizes gestern ich würde sparen etwa 5 Stunden Zeit. Aber ich bin verlassen, es ist bis zu den Moderatoren, wo Sie diese Frage stellen.
Schreibe einen Kommentar