2010-09-18 22 views
5

Na naszym serwerze programującym obsługa sesji działa dobrze. Na naszym serwerze produkcyjnym to nie robi.Konfiguracja PHP umożliwiająca sesje

phpinfo na serwerze rozwoju pokazuje:

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

phpinfo na serwerze produkcyjnym pokazuje:

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

Co to jest "mm sqlite" i to może być przyczyną problemu? Jak mogę to włączyć? Jakie są te ustawienia?


Reszta ustawienia są wspólne między nimi:

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 

Czy nieobecność „mm sqlite” stop sesji PHP z pracy, gdy odchodzi od produkcji do rozwoju?

+0

php5 to aktualna wersja PHP od lat. nie trzeba go określać. –

+0

Nie, brak "mm sqlite" ** nie może ** zatrzymać sesji PHP od pracy. Ustawienia konfiguracji to najmniejszy powód, dla którego coś nie działa. To twój kod, koleś. To jest twój kod, który lepiej zacznij debugować. –

+0

Nie do końca Kol. Wrobiłem nowe pytanie, które również opisuje, dlaczego mam tu do czynienia z problemem - http://stackoverflow.com/questions/3740884/creating- nowy-tmp-folder-for-php-to-use – tzmatt7447

Odpowiedz

4

Zrobione z http://devzone.zend.com/article/141

Istnieje kilka wbudowanych możliwości przechowywania danych sesji. Moduł obsługi sesji jest ustawiony w php.ini na mocy dyrektywy o nazwie

session.save_handler 

sqlite Opcjonalnie można przechowywać danych sesji w bazie danych sqlite. Aby to zrobić, należy użyć konfiguracji, takich jak:

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

mm Dla wydajnego przechowywania sesji, można przechowywać dane sesji w pamięci z modułem shared-memory mm. Musisz skompilować php z obsługą modułów mm. Oto samouczek konfigurowania obsługi sesji za pomocą mm (http://www.zend.com/tips/tips.php?id=164&single=1). Zauważ, że ponieważ data sesji jest przechowywana w pamięci RAM, powinieneś rozważyć jej niestabilność danych, a utracisz ją przy zaniku zasilania lub ponownym uruchomieniu komputera.

Uwaga: link w powyższym samouczku jest nieaktualny. Możesz pobrać moduł mm ze strony OSSP.org.

+0

Dziękuję Codem - to było pomocne.Nie byłem w stanie zlokalizować ich samodzielnie ... – tzmatt7447

+0

z komentarzy na tej stronie: 'Powinno być: session.save_handler = sqlite' co jest logiczne –

+0

naprawić session.save_handler na sqlite prosze – diego2k

0

Jakie są pozostałe ustawienia "sesji" na stronie phpinfo?

W szczególności, jaka jest wartość "session.save_handler" i "session.save_path"?

Oto więcej informacji: http://php.net/manual/en/session.configuration.php

„mm” i „sqlite” są alternatywą Zapisz teleskopowe dostępne do użycia. Domyślnie php używa "plików", które będą przechowywać dane sesji na lokalnym serwerze.