Schreib-Berechtigung für PHP-Anwendung unter Debian
Hallo,
ich möchte mit so einer Datei schreiben.php:
eine neue Datei erstellen. Das Beispiel oben funktioniert auf dem Webspace meines Providers. Aber auf einem anderen Debian-System, wo ich die Möglichkeit habe, die Berechtigungen zu ändern, funktioniert das Beispiel oben _nicht_. Welche Einstellungen muss ich auf dem Debian-System anpassen, damit
eine neue Datei erstellt? Momentan ist für die Datei schreiben.php rw-r--rw- (0646) als Berechtigung auf dem Debian-System gesetzt.
PHP ist unter Debian als Apache-Modul installiert.
Gruss, Gustav
ich möchte mit so einer Datei schreiben.php:
<?php
$daten = "Ein neuer Dateiinhalt";
$dateihandle = fopen("beispiel.txt","w");
fwrite($dateihandle, $daten);
?>
eine neue Datei erstellen. Das Beispiel oben funktioniert auf dem Webspace meines Providers. Aber auf einem anderen Debian-System, wo ich die Möglichkeit habe, die Berechtigungen zu ändern, funktioniert das Beispiel oben _nicht_. Welche Einstellungen muss ich auf dem Debian-System anpassen, damit
fwrite($dateihandle, $daten)
PHP ist unter Debian als Apache-Modul installiert.
Gruss, Gustav
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 279133
Url: https://administrator.de/forum/schreib-berechtigung-fuer-php-anwendung-unter-debian-279133.html
Ausgedruckt am: 06.04.2025 um 23:04 Uhr
6 Kommentare
Neuester Kommentar

Moin,
Am besten du änderst den Besitzer der Datei auf den "www" user und setzt die rechte 700 wenn das dann reicht.
VG
Val
das schreiben.php-Beispiel funktioniert, wenn ich dem Ordner mit der datei schreiben.php die 0775-Berechtigung gebe.
Ja sicher, da die Rechte zum ausführen --x bei dir gefehlt haben.Am besten du änderst den Besitzer der Datei auf den "www" user und setzt die rechte 700 wenn das dann reicht.
VG
Val
Genau.
Deine PHP-Datei wird ja vom Webserver gelesen und dann mithilfe von PHP interpretiert.
Webserver -> PHP -> Datei
Der Webserver bleibt aber der ausführende Prozess. Somit muss der Webserver Schreibrechte auf die Zieldatei/-verzeichnis haben.
Das Script selber muss in diesem Fall nur gelesen werden können. Es sei den die Datei selber soll beschreiben werden.
Muss die Zieldatei erst noch erstellt werden, so benötigt der Webserver Schreibrechte in dem Verzeichnis in dem die Datei erstellt werden soll.
Valexus hat da schon nicht unrecht ABER schau wie die Besitzrechte auf dem Zielserver sind !
Oft habe ich es gesehen, das die Daten zwar dem Besitzer (ftp-account) gehören (User und Group), der Webserver aber nur über die "Other" seine Erlaubnisse bekommt. Dann müsstest du ggf. bei jedem Upload die Dateirechte neu vergeben müssen bzw. sie dem Livesystem anpassen müssen.
So dürfte nämlich NUR der Benutzer "www" auf die Datei zugreifen: 0700 = -rwx------, Gruppenuser und alle anderen(Other) dürfen genau Null/Nix/Nothing.
~Arano
Deine PHP-Datei wird ja vom Webserver gelesen und dann mithilfe von PHP interpretiert.
Webserver -> PHP -> Datei
Der Webserver bleibt aber der ausführende Prozess. Somit muss der Webserver Schreibrechte auf die Zieldatei/-verzeichnis haben.
Das Script selber muss in diesem Fall nur gelesen werden können. Es sei den die Datei selber soll beschreiben werden.
Muss die Zieldatei erst noch erstellt werden, so benötigt der Webserver Schreibrechte in dem Verzeichnis in dem die Datei erstellt werden soll.
Valexus hat da schon nicht unrecht ABER schau wie die Besitzrechte auf dem Zielserver sind !
Oft habe ich es gesehen, das die Daten zwar dem Besitzer (ftp-account) gehören (User und Group), der Webserver aber nur über die "Other" seine Erlaubnisse bekommt. Dann müsstest du ggf. bei jedem Upload die Dateirechte neu vergeben müssen bzw. sie dem Livesystem anpassen müssen.
Am besten du änderst den Besitzer der Datei auf den "www" user und setzt die rechte 700 wenn das dann reicht.
Das wiederum wäre blöde, denn damit sperrst du dich selber aus !So dürfte nämlich NUR der Benutzer "www" auf die Datei zugreifen: 0700 = -rwx------, Gruppenuser und alle anderen(Other) dürfen genau Null/Nix/Nothing.
~Arano
Moin moin !
Nein! "other" sind alle anderen, auf dem Server angelegten, Benutzer.
Alle Besucher machen eine Anfrage an den Webserver und der greift dann auf die Dateien zu.
Die anderen User deines Hosters werden aber wahrscheinlich nicht auf deine Dateien zugteifen können, da sie in ihr Verzeichnis "eingesperrt" sind - da brauczt man sich also keine Gedanken zu machen.
Wie es letzt endlich bei dir sein muss, kann die nur dein Hoster beantworten.
Oft ist es so, das Beitzer und Gruppe alles dürfen und Andere nur lesezugriff haben = 0775.
Wenn du nun auf eine Datei oder ein Verzeichnis zusätzlich schreibrechte benötigst (z.b. für other), so wäre das ein 0777.
Schau doch mal bei deinem Hoster in die FAQs, das sollte da eigentlich zu funden sein.
~Arano
Nein! "other" sind alle anderen, auf dem Server angelegten, Benutzer.
Alle Besucher machen eine Anfrage an den Webserver und der greift dann auf die Dateien zu.
Die anderen User deines Hosters werden aber wahrscheinlich nicht auf deine Dateien zugteifen können, da sie in ihr Verzeichnis "eingesperrt" sind - da brauczt man sich also keine Gedanken zu machen.
Wie es letzt endlich bei dir sein muss, kann die nur dein Hoster beantworten.
Oft ist es so, das Beitzer und Gruppe alles dürfen und Andere nur lesezugriff haben = 0775.
Wenn du nun auf eine Datei oder ein Verzeichnis zusätzlich schreibrechte benötigst (z.b. für other), so wäre das ein 0777.
Schau doch mal bei deinem Hoster in die FAQs, das sollte da eigentlich zu funden sein.
~Arano