Hallo,<br />in Sessions Verzeichnis werden ja Dateien abgelegt die für ne Art Cookies dienen, aber warum werden diese Dateien vom Server nicht mehr gelöscht? <img src="http://www.ubbdev.com/forum/images/graemlins/frown.gif" alt="" /> So komme ich pro Tag auf ca. 1MB Daten-Zuwachs auf dem Server! Gibt es da schon eine Fehlerlösung oder sollte ich auf die 6.5.1.1 Version updaten? 6.5.1 läuft ja gerade bei mir.
Die Sessions Files sollte der Server nach inaktivität selber löschen. Ich habe das bei mir kontrolliert und das klappt auch. Das die Session Files gelöscht werden kann man mit dem 'Sprachenumschaltbug' leicht nachvollziehen. <br /> <br />Wie sind die Rechte für das Verzeichnis und wo liegt es ? Im Webroot oder außerhalb ? Welche Rechte haben deine erzeugten Dateien? Bei mir haben die Session Files 600 und das Verzeichnis selber 755. <br /> <br />Zwischen 6.5.1 und 6.5.1.1 hat sich nichts an den Sessionshandling geändert.
Micky
Member
Registered: 02/11/04
Posts: 183
Loc: Bern, Switzerland
Hallo Zarzal,<br />Ich bin bei HostEurope und es klappt nicht!! <img src="http://www.ubbdev.com/forum/images/graemlins/crazy.gif" alt="" /> Das habe ich noch von HostEurope als Antwort bekommen: "Offensichtlich funktioniert Ihr garbage-collector (wenn vorhanden) nicht." []http://www.ubbdev.com/forum/images/icons/question.gif[/] Der Witz ist, bis vor einem halben Jahr hat alles gefunzt! Die Session Dateien haben bei mir auch Rechte 600, dass Verzeichnis aber 777.
[]"Offensichtlich funktioniert Ihr garbage-collector (wenn vorhanden) nicht." [/]<br /><br />Da verließen sie mich dann ... Ich kann dir nur sagen das es bei mir auf einem Zeus Server einwandfrei geht. Ich habe einen kompletten virtuellen Server mit Zugriff oberhalb des Webroots. Stell mal deine Anfrage bei Infopop.
Micky
Member
Registered: 02/11/04
Posts: 183
Loc: Bern, Switzerland
Das habe ich zum garbage-collector gefunden<br /><br /> [] In Java gibt es kein Gegenstück zum new-Operator, der ein Objekt wieder entfernt. Auch Destruktoren im Sinne von C++ gibt es in Java nicht. Anstelle expliziter Freigabe von Objekten besitzt Java einen Mechanismus, der sich automatisch darum kümmert: der Garbage Collector. Der Garbage Collector läuft in einem Hintergrund-Thread und ermittelt diejenigen Objekte, auf die nicht mehr verwiesen wird. Diese Objekte werden markiert und danach in einem zweiten Durchgang entfernt.<br /><br />Der Garbage Collector läuft gleichzeitig mit dem Programm mit niedriger Priorität im Hintergrund. Er kann aber auch vom Programmierer über den Aufruf <br /> System.gc();<br /><br />gestartet werden. Die explizite Anforderung des Garbage Collectors sollte aber in Fällen unterbleiben, in denen das Programm zeitkritische Operationen ausführt, da der Garbage Collector eine Weile benötigt, um seine Arbeit zu verrichten. Ferner garantiert auch die explizite Anforderung nicht, dass ein Objekt tatsächlich abgeräumt wird. [/]
Das hat aber nichts mit deinem Board zu tun und bezieht sich auf eine Anwendung auf deinem Rechner die unter Java laufen würde <img src="http://www.ubbdev.com/forum/images/graemlins/smile.gif" alt="" /> Was ein Garbage Collector selber ist, weiss ich schon, aber wie das in Threads realisiert ist weiss ich nicht. Jedenfasll nicht in Java, das ist sicher.
Mit dem Garbage collector ist der Mechanismus gemeint, der die alten Session-Dateien nach einer bestimmten Zeit automatisch löscht. Das wird normalerweise direkt von PHP gemacht, ohne das man irgendetwas machen muss.<br /><br />Ein Update auf 6.5.1.1 sollte das Problem nicht lösen, da es ein Sicherheits-Update ist, solltest du das aber unabhängig davon tun.<br /><br />Verwendest du für das Login Cookies oder Sessions?<br />Wie ist der Pfad zu deinem Session Verzeichnis?<br />Welche Rechte hat der Benutzer, mit dem dein Webserver läuft, auf diesem Verzeichnis?<br />Was für ein Betriebssystem hat der Server?
_________________________
Running a community? -> Keep informed and take it to the next level
Micky
Member
Registered: 02/11/04
Posts: 183
Loc: Bern, Switzerland
In welcher Zeit sollte PHP das machen?<br />Für das Forum verwende ich ich die Cookies.<br />Das Session Verzeichnis ist mit im Forum Verzeichnis.<br />Die Rechte zum Verzeichnis sind 777.<br />Server OS: Linux 2.6.10-as3-he-as3.piii.4gb.1<br />HTTP Server: Apache/1.3.31 (Unix) FrontPage/5.0.2.2635 PHP/4.3.10<br />PHP Version: 4.3.10 (Zend: 1.3.0)<br />Noch etwas vergessen? <img src="http://www.ubbdev.com/forum/images/graemlins/grin.gif" alt="" />
Das wird über einen Konfigurationsparameter von php geregelt.<br />Falls du keinen Zugriff auf die php.ini Datei hast, kannst du das auch mittels einer .htaccess Datei setzen.<br /><br />Der Parameter lautet: session.gc_maxlifetime<br />Anzugeben ist eine Zeit in Sekunden, nach der die Session-Datei gelöscht werden soll.<br /><br />Wenn du dir mal phpinfo() ausgeben lässt, solltest du auch sehen können, was für ein Wert da momentan eingetragen ist.
_________________________
Running a community? -> Keep informed and take it to the next level
Micky
Member
Registered: 02/11/04
Posts: 183
Loc: Bern, Switzerland
Das steht in meiner phpinfo drin<br /><br />
Code:
session<br />Session Support enabled <br />Registered save handlers files user <br /><br />Directive Local Value Master Value <br />session.auto_start Off Off <br />session.bug_compat_42 On On <br />session.bug_compat_warn On On <br />session.cache_expire 180 180 <br />session.cache_limiter nocache nocache <br />session.cookie_domain no value no value <br />session.cookie_lifetime 0 0 <br />session.cookie_path / / <br />session.cookie_secure Off Off <br />session.entropy_file no value no value <br />session.entropy_length 0 0 <br />session.gc_divisor 100 100 <br />session.gc_maxlifetime 1440 1440 <br />session.gc_probability 0 0 <br />session.name XTCsid PHPSESSID <br />session.referer_check no value no value <br />session.save_handler user files <br />session.save_path /tmp /tmp <br />session.serialize_handler php php <br />session.use_cookies On On <br />session.use_only_cookies Off Off <br />session.use_trans_sid On On <br />
Da haben wir die Ursache:<br />session.gc_probability 0 0 <br /><br />Das sollte auf 1 stehen.<br />Aus der PHP Manual:<br /><br />session.gc_probability integer<br /><br /> session.gc_probability wird in Verbindung mit session.gc_divisor dazu verwendet, die Wahrscheinlichkeit zu regeln, mit der die gc (garbage collection) Routine gestartet wird. Grundeinstellung 1. Siehe auch session.gc_divisor. <br />session.gc_divisor integer<br /><br /> session.gc_divisor definiert gekoppelt mit session.gc_probability die Wahrscheinlichkeit, mit der die gc (garbage collection) Routine bei jeder Initialisierung einer Session gestartet wird. Die Wahrscheinlichkeit errechnet sich aus gc_probability/gc_divisor. 1/100 bedeutet z.B., dass die GC-Routine bei jeder Anfrage mit einer Wahrscheinlichkeit von 1% gestartet wird. Grundeinstellung 100.
_________________________
Running a community? -> Keep informed and take it to the next level