2010-09-18 5 views
5

Auf unserem Entwicklungsserver funktioniert die Sitzungsverwaltung einwandfrei. Auf unserem Produktionsserver tut es das nicht.PHP-Konfiguration zum Aktivieren von Sitzungen

phpinfo auf dem Entwicklungsserver zeigt:

    session 
Session Support     enabled 
Registered save handlers   files user mm sqlite 
Registered serializer handlers php php_binary wddx 

phpinfo auf dem Produktionsserver zeigt:

    session 
Session Support     enabled 
Registered save handlers   files user 
Registered serializer handlers php php_binary wddx 

Was "mm sqlite" ist und es könnte das Problem verursachen? Wie aktiviere ich dies? Was sind diese Einstellungen überhaupt?


Die restlichen Einstellungen sind zwischen den beiden gemeinsam:

Directive Local Value Master Value 
session.auto_start Off Off 
session.bug_compat_42 On On 
session.bug_compat_warn On On 
session.cache_expire 180 180 
session.cache_limiter nocache nocache 
session.cookie_domain no value no value 
session.cookie_httponly Off Off 
session.cookie_lifetime 0 0 
session.cookie_path//
session.cookie_secure Off Off 
session.entropy_file no value no value 
session.entropy_length 0 0 
session.gc_divisor 100 100 
session.gc_maxlifetime 1440 1440 
session.gc_probability 1 1 
session.hash_bits_per_character 4 4 
session.hash_function 0 0 
session.name PHPSESSID PHPSESSID 
session.referer_check no value no value 
session.save_handler files files 
session.save_path /tmp /tmp 
session.serialize_handler php php 
session.use_cookies On On 
session.use_only_cookies On On 
session.use_trans_sid 0 0 

kann das Fehlen der "mm sqlite" stop PHP-Sessions von der Arbeit, wenn von der Entwicklung bis zur Produktion verlagert?

+0

php5 ist schon seit Jahren die aktuelle PHP-Version. keine Notwendigkeit, es zu spezifizieren –

+0

Nein, Abwesenheit des "mm sqlite" ** kann ** PHP-Sitzungen nicht vom Arbeiten stoppen. Und Konfigurationseinstellungen ist der kleinste Grund, dass etwas nicht funktioniert. Es ist dein Code, Alter. Es ist dein Code, mit dem du besser anfangen solltest zu debuggen. –

+0

Nicht genau Col. Ich habe eine neue Frage umrahmt, die auch beschreibt, warum ich hier ein Problem habe - http://stackoverflow.com/questions/3740884/creating- new-tmp-folder-for-php-to-use – tzmatt7447

Antwort

4

Entnommen http://devzone.zend.com/article/141

ein paar eingebauten Optionen zum Speichern von Sitzungsdaten sind. Die Session-Handler in der php.ini nach der Richtlinie

session.save_handler 

SQLite Optional genannt eingestellt ist, können Sie die Sitzungsdaten in einer SQLite-Datenbank speichern. Dazu verwenden Sie eine Konfiguration wie:

session.save_handler = sqlite 
session.save_path = /tmp/phpsess.db 

mm Für High-Performance-Sitzungsspeicher, Sie Session-Daten im Speicher mit dem mm Shared-Memory-Modul speichern können. Sie müssen PHP mit der MM-Modul-Unterstützung kompilieren. Hier ist ein Tutorial zum Konfigurieren der Sitzungsbehandlung mit mm (http://www.zend.com/tips/tips.php?id=164&single=1). Beachten Sie, dass das Sitzungsdatum im RAM gespeichert wird. Daher sollten Sie es als flüchtige Daten betrachten, die bei einem Stromausfall oder einem Neustart verloren gehen.

Hinweis: Der Link im obigen Tutorial ist veraltet. Sie können das mm-Modul von der OSSP.org-Website abrufen.

+0

Danke Codem - das war hilfreich.Ich konnte diese selbst nicht finden ... – tzmatt7447

+0

aus den Kommentaren dieser Seite: 'Sollte sein: session.save_handler = sqlite' was logisch ist –

+0

fixiere den session.save_handler zu sqlite bitte – diego2k

0

Wie sieht der Rest der "Sitzungen" -Einstellungen auf Ihrer phpinfo-Seite aus?

Insbesondere, was ist der Wert von "session.save_handler" und "session.save_path"? Hier

sind einige weitere Informationen: http://php.net/manual/en/session.configuration.php

„mm“ und „sqlite“ sind alternative speichern Handler für Sie zu nutzen. Standardmäßig verwendet PHP "Dateien", die Sitzungsdaten auf Ihrem lokalen Server speichern.

Verwandte Themen