2010-09-18 20 views
5

Sul nostro server di sviluppo, la gestione delle sessioni funziona correttamente. Sul nostro server di produzione, non lo fa.Configurazione PHP per abilitare le sessioni

phpinfo sul server di sviluppo mostra:

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

phpinfo sul server di produzione mostra:

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

Che cosa è "mm SQLite" e potrebbe essere la causa del problema? Come abilito questo? Quali sono queste impostazioni comunque?


Il resto delle impostazioni sono comuni tra le due:

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 

Può assenza delle sessioni PHP arresto "mm sqlite" da lavorare quando si passa dallo sviluppo alla produzione?

+0

php5 è la versione corrente di PHP già da anni. non è necessario specificarlo. –

+0

No, l'assenza del "mm sqlite" ** non può ** interrompere il funzionamento delle sessioni PHP. E le impostazioni di configurazione sono la minima ragione per cui qualcosa non funziona. È il tuo codice, amico. È il tuo codice, che è meglio iniziare a eseguire il debug –

+0

Non esattamente il Col. Ho creato una nuova domanda che descrive anche perché sto affrontando un problema qui - http://stackoverflow.com/questions/3740884/creating- new-tmp-folder-for-php-to-use – tzmatt7447

risposta

4

Tratto da http://devzone.zend.com/article/141

Ci sono un paio di opzioni integrate per la memorizzazione dei dati di sessione. Il gestore di sessione è impostata nel php.ini ai sensi della direttiva denominata

session.save_handler 

SQLite Opzionalmente, è possibile memorizzare i dati della sessione in un database SQLite. Per fare ciò, utilizzare una configurazione come ad esempio:

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

mm Per la conservazione della sessione ad alte prestazioni, è possibile memorizzare i dati della sessione in memoria con il modulo di memoria condivisa mm. Dovrai compilare php con il supporto del modulo mm. Ecco un tutorial per configurare la gestione delle sessioni con mm (http://www.zend.com/tips/tips.php?id=164&single=1). Si noti che poiché la data della sessione è memorizzata nella RAM, è necessario considerarla come dati volatile e va persa con un'interruzione dell'alimentazione o un riavvio.

Nota: il collegamento nell'esercitazione precedente non è aggiornato. È possibile recuperare il modulo mm dal sito Web OSSP.org.

+0

Grazie Codem - è stato utile.Non ero in grado di localizzarli da soli ... – tzmatt7447

+0

dai commenti di quella pagina: 'Dovrebbe essere: session.save_handler = sqlite' che è logico –

+0

correggere la sessione.save_handler in sqlite per favore – diego2k

0

Che aspetto hanno le altre impostazioni delle "sessioni" nella pagina phpinfo?

In particolare, qual è il valore di "session.save_handler" e "session.save_path"?

Ecco qualche informazione in più: http://php.net/manual/en/session.configuration.php

"mm" e "SQLite" sono alternative Salva i gestori disponibili per l'uso. Per impostazione predefinita, php utilizza "file" che memorizzeranno i dati di sessione sul tuo server locale.