• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] fopen und openSUSE 11.2 keine Berechtigung

Gerhard1

Newbie
Seit openSUSE 11.2 funktioniert fopen nicht mehr.

Ich habe folgende Skript erstellt, es liegt im Verzeichnis /srv/www/htdocs/Apache

Code:
<?PHP
   error_reporting(E_ALL);

   $pfad = "/srv/www/htdocs/Apache";
   $id = fileowner ( $pfad );

   echo 'Benutzer-ID der Datei ' . $pfad . ': ' . $id . '<br>';

   $array = posix_getpwuid ( $id );

   while ( list ( $key, $val ) = each ( $array ) )
   {
      echo $key . ' - ' . $val . '<br>';
   }

   $filename = '/test.txt';
   $somecontent = "Füge dies der Datei hinzu\n";

   if ( is_writeable ( $pfad ) )
   {
      echo ' Das Verzeichnis ' . $pfad . ' existiert und ist beschreibbar<br>';
   }
   else
   {
      echo 'Das Verzeichnis ' . $pfad . ' existiert nicht und ist nicht beschreibbar<br>';
   }

   // Wir öffnen $filename im "Schreib" - Modus.
   // dort wird $somecontent später mit fwrite() geschrieben.
   if (!$handle = fopen($filename, "w")) 
   {
      print "Kann die Datei $filename nicht öffnen";
      exit;
   }

   // Schreibe $somecontent in die geöffnete Datei.
   if (!fwrite($handle, $somecontent)) 
   {
   print "Kann in die Datei $filename nicht schreiben";
   exit;
   }
   print "Fertig, in Datei $filename wurde $somecontent geschrieben";
   fclose($handle);
?>

Unter openSUSE 11.2, 11.3 und 11.4 wird folgende ausgegeben:

Benutzer-ID der Datei /srv/www/htdocs/Apache: 0
name - root
passwd - x
uid - 0
gid - 0
gecos - root
dir - /root
shell - /bin/bash
Die Datei /srv/www/htdocs/Apache existiert und ist beschreibbar
Warning: fopen(/test.txt): failed to open stream: Permission denied in /srv/www/htdocs/Apache/Test_error.php on line 30 Kann die Datei /test.txt nicht öffnen

Wenn ich das Skript unter openSUSE 11.1 ausführe funtioniert alles und die Datei test.txt wird erstellt und beschrieben.

Die Rechte auf das Verzeichnis sind:
drwxrwxrwx 2 root root 4096 2. Apr 18:51 Apache

Wo muss ich die Konfiguration anpassen um den Fehler zu beseitigen?

Danke

Gruß
Gerhard1
 
OP
G

Gerhard1

Newbie
Ich habe inzwischen den Fehler gefunden.

$filename = '/test.txt';

Hier fehlt der Punkt vor dem /.

So versucht PHP im root Verzeichnis zu schreiben.
Richtig ist: $filename = './test.txt';

Nun wird im aktuellen Verzeichnis die Datei erstellt

Gruß
Gerhar1
 

Dr. Glastonbury

Advanced Hacker
Hi Gerhard1,
schön, dass du den Fehler gefunden hast! Außerdem sehr schön, dass du ein "gelöst" in den Titel geschrieben hast! Würde mich freuen, wenn du in Zukunft auch noch die
Code:
-Tags verwenden würdest, dann wird das ganze gleich viel angenehmer zu lesen.
Hab deinen Beitrag mal entsprechend editiert ;)
 
Oben