Me he pasado un buen rato intentando hacer login en mi web sin poder conseguirlo. No lo conseguía ni después de aplicar los siempre socorridos trucos de borrar las tablas SESSIONS y CACHE de la base de datos, ni siquiera eliminando las cookies del navegador me dejaba entrar (que por cierto, se me ha ido la mano y las he borrado todas). Ocurría que me aparecía la ventana de login, introducía usuario y password, entraba en el sistema, y cualquier página a la que intentaba acceder a partir de ahí me echaba con el mensaje de permiso denegado.

Al rato de estar probando cosas, y de empezar a volverme un poco loco, he recordado que hace poco mi servicio de hosting (DreamHost) ha actualizado a la versión 5.2.1 de PHP. Entonces he pensado que podía haber alguna incompatibilidad de Drupal con esta versión de PHP y he hecho una búsqueda a ver que encontraba. Y efectivamente, hay problemas. He encontrado una solución rápida en esta página: http://drupal.org/node/102114.

He aplicado la solución más sencilla de todas las que he visto, que es la que figura en el primer comentario de la página que he puesto. Basta con añadir al fichero settings.php la siguiente línea (antes del último «?>»):

register_shutdown_function('session_write_close');

Una vez puesta esa línea he podido entrar otra vez a mi web de la forma normal a la primera. Y por cierto, mi idea era escribir hoy sobre otra cosa, que para eso estaba haciendo el login, pero al final se me ha ido el tiempo localizando el error. Pongo la solución por aquí, porque me consta que hay mucho usuario de Drupal que tiene problemas con el inglés.