Ole B. Rosentreter: Schreiben in Datei .....

Hi @ all!

Folgendes Codeschnipsel aus einer Funktion soll eine (evtl. vorhandene) Datei öffnen, damit ich sie anschließend beschreiben kann.

$datei = fopen ($dat_name,'w');

Dabei ist $dat_name ein dieser Funktion übergebener Dateiname.
Leider habe ich mit dieser Fehlermeldung zu kämpfen:

Warning: fopen("abc.txt", "w") - Permission denied in /usr/local/httpd/htdocs/home/page.php on line 12

Dabei habe ich alle notwendigen Rechte in diesem Verzeichnis. Daran kann es also nicht liegen.

Wer hilft mit beim Entfernen des Brettes vor meinem Kopf?

Danke!

Ole

  1. Hi @ all!

    Folgendes Codeschnipsel aus einer Funktion soll eine (evtl. vorhandene) Datei öffnen, damit ich sie anschließend beschreiben kann.

    $datei = fopen ($dat_name,'w');

    Dabei ist $dat_name ein dieser Funktion übergebener Dateiname.
    Leider habe ich mit dieser Fehlermeldung zu kämpfen:

    Warning: fopen("abc.txt", "w") - Permission denied in /usr/local/httpd/htdocs/home/page.php on line 12

    Dabei habe ich alle notwendigen Rechte in diesem Verzeichnis. Daran kann es also nicht liegen.

    Doch, daran wird es liegen.

    Wem gehört die Datei? Welcher Gruppe ist sie zugeordnet? Mit welcher User-ID und Gruppen-ID läuft dein Skript? Welche Rechte hat die Datei? Darf sie von deinem Skript zum Schreiben oder überhaupt geöffnet werden?

    Bedenke, dass die Rechte, die dein User-Account im Verzeichnis hat, vollkommen irrelevant sind, wenn es um den Dateizugriff geht.

    - Sven Rautenberg

    1. Hi @ all!

      $datei = fopen ($dat_name,'w');

      Dabei ist $dat_name ein dieser Funktion übergebener Dateiname.
      Leider habe ich mit dieser Fehlermeldung zu kämpfen:

      Warning: fopen("abc.txt", "w") - Permission denied in /usr/local/httpd/htdocs/home/page.php on line 12

      Dabei habe ich alle notwendigen Rechte in diesem Verzeichnis. Daran kann es also nicht liegen.

      DU hast Die Rechte, DU bist aber gar nicht angemeldet am System, sondern der PHP-DEAMON macht die Dateiarbeit für dich, und der hat keine Rechte. Da Du wahrscheinlich auch kein chown machen darfst auf die Verzeichnisse und Dateien, musst Du dich erkundigen, unter elscher Gruppe der Deamon (wahrscheinlich user 'wwwrun') für Dich läuft. Dann änderst Du die Gruppe der Verzeichnisse und Dateien und gibst die Rechte 0770 für Verzeichnisse und 0660 für Dateien.

      Danach läufts.

      Denk dran, dass alle Dateien, die der Deamon anleget automatisch ihm gehören.

      Bedenke, dass die Rechte, die dein User-Account im Verzeichnis hat, vollkommen irrelevant sind, wenn es um den Dateizugriff geht.

      Das ist jetzt aber blöde ausgedrückt von Dir Sven :-) Um wessen Dateizugriff geht es? Über SSH und Telnet und FTP usw gelten natürlich diese Rechte.

      Grüße

      Tom

      1. Hi!

        DU hast Die Rechte, DU bist aber gar nicht angemeldet am System, sondern der PHP-DEAMON macht die Dateiarbeit für dich, und der hat keine Rechte. Da Du wahrscheinlich auch kein chown machen darfst auf die Verzeichnisse und Dateien, musst Du dich erkundigen, unter elscher Gruppe der Deamon (wahrscheinlich user 'wwwrun') für Dich läuft. Dann änderst Du die Gruppe der Verzeichnisse und Dateien und gibst die Rechte 0770 für Verzeichnisse und 0660 für Dateien.

        Danach läufts.

        Denk dran, dass alle Dateien, die der Deamon anleget automatisch ihm gehören.

        Hey, danke! Werde ich mal abchecken.

        Ole

    2. Doch, daran wird es liegen.

      Wem gehört die Datei?

      Mir. Ich gehöre zur Gruppe der "users"

      Welcher Gruppe ist sie zugeordnet?

      users

      Mit welcher User-ID und Gruppen-ID läuft dein Skript?

      dito.

      Welche Rechte hat die Datei?

      In meiner Verzweiflung habe ich die Rechte testweise auf 777 gesetzt.

      Darf sie von deinem Skript zum Schreiben oder überhaupt geöffnet werden?

      Auch 777.

      Bedenke, dass die Rechte, die dein User-Account im Verzeichnis hat, vollkommen irrelevant sind, wenn es um den Dateizugriff geht.

      Ole

  2. Warning: fopen("abc.txt", "w") - Permission denied in /usr/local/httpd/htdocs/home/page.php on line 12

    Dabei habe ich alle notwendigen Rechte in diesem Verzeichnis. Daran kann es also nicht liegen.

    Einer von euch beiden hat Unrecht, ich tippe mal, dass du Unrecht hast.