|
Joined: Feb 2004
Posts: 182
Member
|
Member
Joined: Feb 2004
Posts: 182 |
Hallo, 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?  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.
|
|
|
|
Joined: Jul 2001
Posts: 808
Coder
|
Coder
Joined: Jul 2001
Posts: 808 |
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. 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. Zwischen 6.5.1 und 6.5.1.1 hat sich nichts an den Sessionshandling geändert.
Last edited by Zarzal; 04/06/2005 8:38 AM.
|
|
|
|
Joined: Feb 2004
Posts: 182
Member
|
Member
Joined: Feb 2004
Posts: 182 |
Hallo Zarzal, Ich bin bei HostEurope und es klappt nicht!!  Das habe ich noch von HostEurope als Antwort bekommen: "Offensichtlich funktioniert Ihr garbage-collector (wenn vorhanden) nicht." [] https://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.
|
|
|
|
Joined: Jul 2001
Posts: 808
Coder
|
Coder
Joined: Jul 2001
Posts: 808 |
[]"Offensichtlich funktioniert Ihr garbage-collector (wenn vorhanden) nicht." [/]
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.
|
|
|
|
Joined: Feb 2004
Posts: 182
Member
|
Member
Joined: Feb 2004
Posts: 182 |
Das habe ich zum garbage-collector gefunden
[] 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.
Der Garbage Collector läuft gleichzeitig mit dem Programm mit niedriger Priorität im Hintergrund. Er kann aber auch vom Programmierer über den Aufruf System.gc();
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. [/]
|
|
|
|
Joined: Jul 2001
Posts: 808
Coder
|
Coder
Joined: Jul 2001
Posts: 808 |
Das hat aber nichts mit deinem Board zu tun und bezieht sich auf eine Anwendung auf deinem Rechner die unter Java laufen würde  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.
|
|
|
|
Joined: Dec 2000
Posts: 1,471
Addict
|
Addict
Joined: Dec 2000
Posts: 1,471 |
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.
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.
Verwendest du für das Login Cookies oder Sessions? Wie ist der Pfad zu deinem Session Verzeichnis? Welche Rechte hat der Benutzer, mit dem dein Webserver läuft, auf diesem Verzeichnis? Was für ein Betriebssystem hat der Server?
|
|
|
|
Joined: Feb 2004
Posts: 182
Member
|
Member
Joined: Feb 2004
Posts: 182 |
In welcher Zeit sollte PHP das machen? Für das Forum verwende ich ich die Cookies. Das Session Verzeichnis ist mit im Forum Verzeichnis. Die Rechte zum Verzeichnis sind 777. Server OS: Linux 2.6.10-as3-he-as3.piii.4gb.1 HTTP Server: Apache/1.3.31 (Unix) FrontPage/5.0.2.2635 PHP/4.3.10 PHP Version: 4.3.10 (Zend: 1.3.0) Noch etwas vergessen? 
|
|
|
|
Joined: Dec 2000
Posts: 1,471
Addict
|
Addict
Joined: Dec 2000
Posts: 1,471 |
Das wird über einen Konfigurationsparameter von php geregelt. Falls du keinen Zugriff auf die php.ini Datei hast, kannst du das auch mittels einer .htaccess Datei setzen.
Der Parameter lautet: session.gc_maxlifetime Anzugeben ist eine Zeit in Sekunden, nach der die Session-Datei gelöscht werden soll.
Wenn du dir mal phpinfo() ausgeben lässt, solltest du auch sehen können, was für ein Wert da momentan eingetragen ist.
|
|
|
|
Joined: Feb 2004
Posts: 182
Member
|
Member
Joined: Feb 2004
Posts: 182 |
Das steht in meiner phpinfo drin 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 />
|
|
|
|
Joined: Dec 2000
Posts: 1,471
Addict
|
Addict
Joined: Dec 2000
Posts: 1,471 |
Da haben wir die Ursache: session.gc_probability 0 0
Das sollte auf 1 stehen. Aus der PHP Manual:
session.gc_probability integer
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. session.gc_divisor integer
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.
|
|
|
|
Joined: Feb 2004
Posts: 182
Member
|
Member
Joined: Feb 2004
Posts: 182 |
|
|
|
Donate to UBBDev today to help aid in Operational, Server and Script Maintenance, and Development costs.
Please also see our parent organization VNC Web Services if you're in the need of a new UBB.threads Install or Upgrade, Site/Server Migrations, or Security and Coding Services.
|
|
Posts: 5,832
Joined: January 2000
|
|
Forums63
Topics37,571
Posts293,923
Members13,848
|
Most Online5,166 Sep 15th, 2019
|
|
Currently Online
Topics Created
Posts Made
Users Online
Birthdays
|
|
|
|