Hola chicos, estoy configurando un clúster EC2 con un equilibrador de carga. Tengo un servidor de bases de datos separado que tiene mysql ejecutándose en él. Tengo 3 servidores web en ejecución, en su mayoría para alta disponibilidad, y por supuesto su equilibrio de carga round-robin parece, por lo que cada página que vaya a usted obtendrá un servidor diferente que perderá su sesión.PHP - Almacenamiento de sesión en una base de datos
Estoy tratando de configurar PHP para almacenarlo en la base de datos. Configuré una tabla y configuré todas las funciones (abrir, cerrar, etc.). y yo he puesto:
session_set_save_handler('_open',
'_close',
'_read',
'_write',
'_destroy',
'_clean');
Pero cuando me conecto o nada en el sitio que compruebe la mesa y nada se ha escrito. No estoy seguro si necesito cambiar algo en el archivo php.ini. Si es así, ¿cuál es el valor para cambiar?
Gracias!
EDIT: Funciones:
function _open(){
global $con;
connect();
}
function _close(){
global $con;
//mysql_close();
}
function _read($id){
global $con;
$id = mysql_real_escape_string($id);
$sql = "SELECT data FROM sessions WHERE id = '$id'";
if ($result = mysql_query($sql, $con)) {
if (mysql_num_rows($result)) {
$record = mysql_fetch_assoc($result);
return $record['data'];
}
}
return '';
}
function _write($id, $data)
{
global $con;
$access = time();
$id = mysql_real_escape_string($id);
$access = mysql_real_escape_string($access);
$data = mysql_real_escape_string($data);
$sql = "REPLACE
INTO sessions
VALUES ('$id', '$access', '$data')";
return mysql_query($sql, $con);
}
function _destroy($id)
{
global $con;
$id = mysql_real_escape_string($id);
$sql = "DELETE
FROM sessions
WHERE id = '$id'";
return mysql_query($sql, $con);
}
function _clean($max)
{
global $con;
$old = time() - $max;
$old = mysql_real_escape_string($old);
$sql = "DELETE
FROM sessions
WHERE access < '$old'";
return mysql_query($sql, $con);
}
session_set_save_handler('_open',
'_close',
'_read',
'_write',
'_destroy',
'_clean');
¿Puedes publicar las funciones en cuestión? ¿Están en una clase, son funciones independientes, etc.? –
Acabo de editar la publicación, gracias :) –