Probleme mit Schreibrechte im Webserver...

Alles, was PHP betrifft, kann hier besprochen werden.

Probleme mit Schreibrechte im Webserver...

Postby mori08 » 15. March 2008 10:25

Hallo zusammen, ich bin langsam schier am verzweifeln,

ich möchte für eine Abfrage eine TXT Datei schreiben, habe alles in meinen Xampp Server getestet
und es scheint keine Probleme zu geben. Wenn ich es zum Internetserver hochschicke, kommt immer diese untere Meldung.

Code: Select all

Kann die Datei button.txt nicht öffnen, Fehler: fopen(doc/button.txt) [function.fopen]:
failed to open stream: Keine Berechtigung!




Meinen provider hatte ich wegen ein ähnliches Problem schon einmal angeschrieben und angeblich haben die etwas
mit den Dateirechten verbessert. Jetzt frage ich mich gerade woran das liegen kann, ich habe- glaube ich, alles
mögliche schon einmal ausprobiert, jetzt weiß ich gerade nicht weiter.


Rufe ich phpinfo() beim webserver auf, bekomme ich folgende Angaben:

---------------------------------
PHP Version 5.2.5-pl1
Linux System

Apache/1.3.39 (Unix) ...

safe_mode ist auf On
-------------------------------

Ich habe zur Überprüfung bei mir Xampp einmal auf safe_mode On gestellt aber auch dann lief das Script.


Das Script das nach einer Abfrage auf eine TXT Datei zugreifen
soll: (nur die wichtigsten Auszüge )

Code: Select all


error_reporting(E_ALL);
ini_set('track_errors','1');
$php_errormsg = '';

   global $php_errormsg;

                               


      $handler= @fopen( "doc/button.txt" ,"a+" )

     or die ( "Kann die Datei <b>button.txt</b> nicht &ouml;ffnen,
     Fehler: <b>$php_errormsg</b>!");



     if($handler)

     {
               
                                 //Fremdzugriff verhindern


            flock ( $handler,LOCK_EX );
            $neue_zeile = chr(13). chr(10);


            $datensatz = "Datentext der in die TXT Datei
            geschrieben werden soll"\n\n";


            $b = fwrite ($handler, "$datensatz$neue_zeile" );
               
                             //Dateie schreiben

            fflush($handler);

                              //echo "Es wurden $b Bytes geschrieben!<br><br>";


            flock($handler, LOCK_UN ); //Datei entsperren
         
            fclose( $handler );



    }



Wie gesagt, im Xampp Server geteste funktionier alles wunderbar, sobald ich es ins Internet stelle, geht gar nichts mehr.

Zusatzinfo: Ich habe die TXT Datei 774 gegeben aber auch bei 777 funzt nichts.

mo
mori08
 
Posts: 13
Joined: 12. March 2008 21:11

Postby Wiedmann » 15. March 2008 10:52

safe_mode ist auf On

Da dürfte das Problem liegen...

Ich habe zur Überprüfung bei mir Xampp einmal auf safe_mode On gestellt aber auch dann lief das Script.

... Du hast zuhause Windows? Da der Apache unter Windows keine verschiedene User kennt (chmod), tritt hier dieses Problem nicht auf.

Zusatzinfo: Ich habe die TXT Datei 774 gegeben aber auch bei 777 funzt nichts.

Welchem User gehört die Datei nachdem du sie mit FTP hochgeladen hast?

Als Gegentest kannst du dann einfach mal mit PHP eine neue Datei erstellen, und dann mit dem FTP-Client nachschauen, wem diese Datei gehört.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby mori08 » 15. March 2008 11:13

... Du hast zuhause Windows? Da der Apache unter Windows keine verschiedene User kennt (chmod)


Ja ich habe Windows XP, na dann konnte ich mir ja diesen Versuch sparen...


Welchem User gehört die Datei nachdem du sie mit FTP hochgeladen hast?

Als Gegentest kannst du dann einfach mal mit PHP eine neue Datei erstellen, und dann mit dem FTP-Client nachschauen, wem diese Datei gehört.


Ich weiß nicht ob du das meinst?

-rwxrwxr-- 1 ud09_xxx ud09_xxx 988 Mar 14 12:52 button.txt

ich muss jetzt kurz mal raus- die Sonne scheint (grins)

Ich werde das mal versuchen, melde mich dann wieder, vorerst danke.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Edit:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

So, ich habe jetzt das Skript so abgeändert, dass es
ein anderes TXT Dokument beschreiben und wenn nicht
vorhanden, erstellen soll. War ja so schon alles vorhanden, habe
nur den Namen ausgetauscht.

Gleichzeitig habe ich den Pfad zum TXT im gleichen Verzeichnis gelegt,
wo auch das Script liegt.

Wieder im Xampp kein Problem, er hat das nicht vorhandene TXT Dokument erstellt
und neue Daten reingeschrieben. Im Internet ist leider kein Ergebnis zu vermelden, nein
stimmt nicht, wieder die gleiche Fehlermeldung:

Code: Select all
Kann die Datei button._news nicht öffnen, Fehler: fopen(button_news.txt) [function.fopen]: failed to open stream: Keine Berechtigung!


Liegt das am Script, das es für diesem Internetserver (Daten oben
schon beschrieben ) mit den Dateirechten rumhadert, oder kann
ich es über nen PHP Trick dazu bewegen, seine Aufgabe zu erfüllen?
Oder muss ich Druck beim Provider machen?


mo
mori08
 
Posts: 13
Joined: 12. March 2008 21:11

Problem erledigt

Postby mori08 » 15. March 2008 22:59

Gut jetzt habe ich es doch noch hin bekommen, weswegen es jetzt doch
ging, ist mir nicht 100% klar aber es geht jetzt.

Na ich habe das Verzeichnis in dem das Script aufgerufen wird und die TXT hinkommt, auf 777 gesetzt und plötzlich ging es. Na ja, ich hatte es heute
Morgen genauso gemacht, und es ging nicht.

Ach was solls, vielleicht hatte inzwischen der Provider was verändert.

mo
mori08
 
Posts: 13
Joined: 12. March 2008 21:11

Postby Wiedmann » 15. March 2008 23:26

Na ich habe das Verzeichnis in dem das Script aufgerufen wird

Dann liegt das Script also nicht in im DocumentRoot, sondern in einm Verzeichnis das du per FTP erstellt hast.

ist mir nicht 100% klar

Im Prinzip musst du dir nur im PHP-Manual durchlesen, was der SafeMode genau macht...

Oder muss ich Druck beim Provider machen?

Das heute noch der SafeMode wirklich benutzt wird, und dann vom Provider nicht richtig umgesetzt wird (selber User für FTP und User der das Script ausführt), ist schon bedauerlich. Wenn das in anderen Bereichen auch so aussieht, könnte man auch über Wechseln nachdenken...
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests