2010-09-18 9 views
5

En nuestro servidor de desarrollo, el manejo de sesiones funciona bien. En nuestro servidor de producción, no es así.Configuración de PHP para habilitar sesiones

phpinfo en el servidor de desarrollo muestra:

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

phpinfo en el servidor de producción muestra:

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

¿Qué es "mm sqlite" y que podría estar causando el problema? ¿Cómo habilito esto? ¿Cuáles son estos ajustes de todos modos?


El resto de los parámetros son comunes entre los dos:

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 

Puede la ausencia de las sesiones de PHP parada "mm" SQLite de trabajar mientras se cambia de desarrollo a la producción?

+0

php5 es la versión actual de PHP por edades. no es necesario especificarlo –

+0

No, la ausencia de "mm sqlite" ** no puede ** detener el funcionamiento de las sesiones de PHP. Y la configuración de configuración es la menor razón por la cual algo no funciona. Es tu código, amigo. Es su código, que será mejor que empiece a depurar –

+0

No exactamente Col. He formulado una nueva pregunta que también describe por qué estoy enfrentando un problema aquí - http://stackoverflow.com/questions/3740884/creating- new-tmp-folder-for-php-to-use – tzmatt7447

Respuesta

4

Tomado de http://devzone.zend.com/article/141

Hay un par de opciones incorporadas para almacenar los datos de sesión. El gestor de sesiones se establece en el php.ini en virtud de la Directiva llamado

session.save_handler 

sqlite Opcionalmente, puede almacenar los datos de sesión en una base de datos SQLite. Para ello, utilice una configuración tales como:

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

mm Para el almacenamiento sesión de alto rendimiento, puede almacenar los datos de sesión en la memoria con el módulo de memoria compartida mm. Necesitará compilar php con el soporte del módulo mm. Aquí hay un tutorial para configurar la sesión con mm (http://www.zend.com/tips/tips.php?id=164&single=1). Tenga en cuenta que dado que la fecha de la sesión se almacena en la RAM, debe considerarla como datos volátiles, y se pierde con un corte de energía o un reinicio.

Nota: el enlace en el tutorial anterior está desactualizado. Puede recuperar el módulo mm del sitio web OSSP.org.

+0

Gracias Codem - eso fue útil.No pude encontrarlos yo mismo ... – tzmatt7447

+0

de los comentarios de esa página: 'Debería ser: session.save_handler = sqlite' que es lógico –

+0

corregir la session.save_handler a sqlite por favor – diego2k

0

¿Cómo se ve el resto de la configuración de "sesiones" en su página phpinfo?

Particularmente, ¿cuál es el valor de "session.save_handler" y "session.save_path"?

Aquí hay más información: http://php.net/manual/en/session.configuration.php

"mm" y "SQLite" son manipuladores alternativa Save disponible para su uso. Por defecto, php usa "archivos" que almacenarán datos de sesión en su servidor local.