session.save_path in php-Script ändern
Badboy46
- php
Hallo,
folgende Zeilen hab ich in meiner Config Datei
die Config wird als erstes per require_once eingebunden
danach wird auf gleicher weise auch AUTH eingebunden
kann mir einer sagen, warum die Session Dateien nicht in den Ordner gespeichert werden?
Der Ordner hat CHMOD = 777
PHP läuft als CGI Version
PHP Version: 4.3.7
Apache 1.3.31
Hello,
folgende Zeilen hab ich in meiner Config Datei
In einer Config-Datei oder im Script?
===============================================
define ('_PATH', dirname($_SERVER['PATH_TRANSLATED']).'/'); // Verzeichnis
ini_set('session.save_path', _PATH.'/tmp/');die Config wird als erstes per require_once eingebunden
danach wird auf gleicher weise auch AUTH eingebundenkann mir einer sagen, warum die Session Dateien nicht in den Ordner gespeichert werden?
Der Ordner hat CHMOD = 777
PHP läuft als CGI Version
PHP Version: 4.3.7
Apache 1.3.31
Wann wird die Session gestartet?
warum benutzt Du nicht http://de.php.net/manual/de/function.session-save-path.php
Außerdem hat Dein resultierender Save-Path zwei Slashes in der Mitte. Das rüfte aber eigentlich nicht der Grund sein.
Wenn der GC funktionieren soll, darf der Save-Path angeblich nicht mehr als zwei Ebenen haben.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
folgende Zeilen hab ich in meiner Config Datei
In einer Config-Datei oder im Script?
Config Datei = php-Script
===============================================
define ('_PATH', dirname($_SERVER['PATH_TRANSLATED']).'/'); // Verzeichnis
ini_set('session.save_path', _PATH.'/tmp/');die Config wird als erstes per require_once eingebunden
danach wird auf gleicher weise auch AUTH eingebundenkann mir einer sagen, warum die Session Dateien nicht in den Ordner gespeichert werden?
Der Ordner hat CHMOD = 777
PHP läuft als CGI Version
PHP Version: 4.3.7
Apache 1.3.31Wann wird die Session gestartet?
warum benutzt Du nicht http://de.php.net/manual/de/function.session-save-path.phpAußerdem hat Dein resultierender Save-Path zwei Slashes in der Mitte. Das rüfte aber eigentlich nicht der Grund sein.
ich hab es jetzt mal direkt so probiert
session_save_path('/home/xxx/www.xxx.de/auth/tmp/');
er ignoriert es einfach
Wenn der GC funktionieren soll, darf der Save-Path angeblich nicht mehr als zwei Ebenen haben.
was meinst du damit?
ich versteh das nicht so wirklich ;-)
Hello,
===============================================
define ('_PATH', dirname($_SERVER['PATH_TRANSLATED']).'/'); // Verzeichnis
ini_set('session.save_path', _PATH.'/tmp/');die Config wird als erstes per require_once eingebunden
danach wird auf gleicher weise auch AUTH eingebundenkann mir einer sagen, warum die Session Dateien nicht in den Ordner gespeichert werden?
Der Ordner hat CHMOD = 777
PHP läuft als CGI Version
PHP Version: 4.3.7
Apache 1.3.31
Wann wird die Session gestartet?
ich hab es jetzt mal direkt so probiert
session_save_path('/home/xxx/www.xxx.de/auth/tmp/');er ignoriert es einfach
Was heißt das? Hast Du mal mit der Konsole im Verzeichnis nachgeschaut, ob eine Datei
sess_abcdef1234567890abcdef1234567890
im Verzeichnis angelegt wird, wenn Du ein simples Script mit
<?php #### session_start.php ####
echo "alter Session-Path: ".session_save_path('/home/xxx/www.xxx.de/auth/tmp/')."<br />\n";
echo "neuer Session-Path: ".session_save_path()."<br />\n"
session_start();
echo "Session-ID: ".session_id();
?>
laufen lässt?
Läuft der Safe_Mode?
Ist der Save-Path irgendwo schon mit php_Admin_Value gesetzt worden?
Kannst Du ihn nicht mal testhalber in der der php.ini setzen?
Wichtig ist, dass die Session NACH dem Setzen des Pfades gestartet wird.
Wenn der GC funktionieren soll, darf der Save-Path angeblich nicht mehr als zwei Ebenen haben.
was meinst du damit?
Dar Garbage Controller ist der "Lumpensammler" für abgelaufene Sessions und der wird nur tätig, wenn man den Pfad maximal 2 Ebenen tief macht (laut Doku) also /home/Sessions_paul/
Deiner hat 5 Ebenen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo
===============================================
define ('_PATH', dirname($_SERVER['PATH_TRANSLATED']).'/'); // Verzeichnis
ini_set('session.save_path', _PATH.'/tmp/');die Config wird als erstes per require_once eingebunden
danach wird auf gleicher weise auch AUTH eingebundenkann mir einer sagen, warum die Session Dateien nicht in den Ordner gespeichert werden?
Der Ordner hat CHMOD = 777
PHP läuft als CGI Version
PHP Version: 4.3.7
Apache 1.3.31Wann wird die Session gestartet?
vorher...
da hätte ich auch selber drauf kommen können :-(
ich hab es jetzt mal direkt so probiert
session_save_path('/home/xxx/www.xxx.de/auth/tmp/');er ignoriert es einfach
Was heißt das? Hast Du mal mit der Konsole im Verzeichnis nachgeschaut, ob eine Dateisess_abcdef1234567890abcdef1234567890
ja, ich hatte erst per FTP geschaut dann per Console
der Ordner war schön leer
jetzt nachdem ich das geändert habe, läuft das auch
Wenn der GC funktionieren soll, darf der Save-Path angeblich nicht mehr als zwei Ebenen haben.
was meinst du damit?
Dar Garbage Controller ist der "Lumpensammler" für abgelaufene Sessions und der wird nur tätig, wenn man den Pfad maximal 2 Ebenen tief macht (laut Doku) also /home/Sessions_paul/
Deiner hat 5 Ebenen.
heisst das jetzt also
das sich der Ordner zumüllt?
Hello,
Wann wird die Session gestartet?
vorher...
da hätte ich auch selber drauf kommen können :-(
Naja, aber erst, wenn man das Konzept verstanden hat. Sowas dauert eben ;-) Also keine Panik!
Ich habe damals mit meinem Team zusammen auch 14 Tage gebraucht, alles zu verstehen, auszuprobieren und zu dokumentieren. Die Doku war damals auch noch nicht so üppig wie heute; kaum UCNs
jetzt nachdem ich das geändert habe, läuft das auch
Dar Garbage Controller ist der "Lumpensammler" für abgelaufene Sessions und der wird nur tätig, wenn man den Pfad maximal 2 Ebenen tief macht (laut Doku) also /home/Sessions_paul/
Deiner hat 5 Ebenen.heisst das jetzt also
das sich der Ordner zumüllt?
Das würde ich mal im Auge behalten. Stelle doch in der INI mal session.max_lifetime auf einen kurzen Wert von z.B 30sec also 30. Vergiss nicht, den Apachen neu zu starten.
Und dann greif mit verschiedenen Clients (bei Windows benötigt man dafür entweder mehrere Rechner oder unterschiedliche Browser) auf diese Testdatei zu. Schau dir das Wachstum der Dateien im Verzeichnis an. Wenn Du feststellst, dass es einfach immer mehr werden, dann liegt das an dem bezeichneten Problem des GC. Er will das Verzeichnis dann nicht mehr verarbeiten.
Der GC scannt übrigens nur das Verzeichnis nach allen Dateien, die mit 'sess_' anfangen. Wenn man ihm das verbietet, indem man dem Parser die Browse-Rechte (R) für das Verzeichnis entzieht, dann bleiben die Dateien auch erhalten. Ich nutze das aktiv, da meine User immer Ihre Session wiederbekommen, aber dafür einen zusätzlichen Cookie für den Zugriff darauf erhalten.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo
Wann wird die Session gestartet?
vorher...
da hätte ich auch selber drauf kommen können :-(Naja, aber erst, wenn man das Konzept verstanden hat. Sowas dauert eben ;-) Also keine Panik!
Ich habe damals mit meinem Team zusammen auch 14 Tage gebraucht, alles zu verstehen, auszuprobieren und zu dokumentieren. Die Doku war damals auch noch nicht so üppig wie heute; kaum UCNs
gut dass man aus Fehlern lernen kann :-)
jetzt nachdem ich das geändert habe, läuft das auch
Dar Garbage Controller ist der "Lumpensammler" für abgelaufene Sessions und der wird nur tätig, wenn man den Pfad maximal 2 Ebenen tief macht (laut Doku) also /home/Sessions_paul/
Deiner hat 5 Ebenen.heisst das jetzt also
das sich der Ordner zumüllt?Das würde ich mal im Auge behalten. Stelle doch in der INI mal session.max_lifetime auf einen kurzen Wert von z.B 30sec also 30. Vergiss nicht, den Apachen neu zu starten.
nur wenn ich das Script jemand gebe, der keinen eigenen Server sondern nur Webspace, der kann das dann nicht beeinflussen
das fällt also aus ;)
Und dann greif mit verschiedenen Clients (bei Windows benötigt man dafür entweder mehrere Rechner oder unterschiedliche Browser) auf diese Testdatei zu. Schau dir das Wachstum der Dateien im Verzeichnis an. Wenn Du feststellst, dass es einfach immer mehr werden, dann liegt das an dem bezeichneten Problem des GC. Er will das Verzeichnis dann nicht mehr verarbeiten.
Der GC scannt übrigens nur das Verzeichnis nach allen Dateien, die mit 'sess_' anfangen. Wenn man ihm das verbietet, indem man dem Parser die Browse-Rechte (R) für das Verzeichnis entzieht, dann bleiben die Dateien auch erhalten. Ich nutze das aktiv, da meine User immer Ihre Session wiederbekommen, aber dafür einen zusätzlichen Cookie für den Zugriff darauf erhalten.
das werd ich trotzdem mal im Auge behalten
ich hab das ja jetzt estmal umgestellt, dass mir bei der Entwicklungsphase mal die Session Datei anschauen kann :)
Hello,
das werd ich trotzdem mal im Auge behalten
ich hab das ja jetzt estmal umgestellt, dass mir bei der Entwicklungsphase mal die Session Datei anschauen kann :)
Genau! Ich ahbe zwar gerade am Wochenende im Bildungsfernsehen (meine Freundi war sauer, dass ich unbedingt diese Sendungen sehen wollte, wo sie doch was anderes vorhatte *gg*) gelernt, dass jede Einsichtnahme in unser Universum dieses auch verändert... Also jede Messung verfälscht das Ergebnis und wer viel misst misst Mist... Und ich sehe das eher pragmatisch: nur Messen heißt wissen.
Also immer anschauen, was da so wann passiert. Hat sich übrigens bewährt, diese "Messpunkte" im Script drinzulassen
define ('DEBUG',true);
und dann im Script
if(DEBUG) echo $diesunddas;
Harzliche Grüße aus http://www.annerschbarrich.de
Tom