2009-07-18 8 views
5

cada vez que un usuario inicia sesión en nuestra Wiki recibe el siguiente error: "Esta Wiki utiliza cookies para iniciar sesión en los usuarios. Tiene las cookies deshabilitadas. Habilítelas y vuelva a intentarlo". Aunque se muestra el error, el usuario está realmente conectado y puede realizar ediciones de forma normal. Si el usuario no se ve muy de cerca que no pueden decir que están conectados y que está causando confusión Me alegraría si alguien me da una pistaproblema con las cookies de mediawiki

Respuesta

12

consejo de Wikimedia es

Check to make sure PHP's directory for storing session data is writable. This directory can be found in the php.ini file under the session.save_path setting. Errors in this php.ini setting can also cause other problems.

... (and) make sure the Internet Guest Account (eg. IUSR_FOOBAR, nobody, or apache) has write permissions to the folder listed in the session.save_path variable of the php.ini file.

Source.

Si están utilizando un sitio de alojamiento que necesita para editar su configuración de scripts php (php.ini). La página debe tener información en la raíz de su documento web. Si ya hay una carpeta "tmp" creada, úsala. Si no hay una carpeta tmp en su configuración actual, cree una que NO sea explorable por los usuarios y diga al archivo php.ini la ubicación como se indicó anteriormente.

+0

Este fue mi problema: "* ... (y) asegúrese de que la cuenta de invitado de Internet (por ejemplo, IUSR_FOOBAR, nadie o apache) tenga permisos de escritura en la carpeta indicada en la variable' session.save_path' de php archivo .ini. * " – Geremia

7

Para referencia futura ... Acabamos de tener un problema similar en Appropedia (el mismo error, pero no se pudo iniciar sesión en absoluto). Resultó que el directorio temporal estaba lleno. Despejó el directorio temporal, problema resuelto.

3

It turned out the temp directory was full

En mi caso fue porque toda la partición estaba llena, necesitaba más espacio.

+0

gracias, tengo el mismo problema – snow8261

0

El problema que tuve fue debido a la instalación predeterminada de nuestro PHP usando C: \ windows \ temp como una carpeta base para la sesión de PHP y otros datos.

Por supuesto, una vez que se vacía la carpeta de archivos temporales, porque está llena de basura .... las subcarpetas de información PHP van con él también: \

-1

Si está utilizando Nginx + PHP-FPM la las respuestas anteriores probablemente no sean de ninguna ayuda.

Desde la línea de comandos, ejecute:

php-FPM -i | grep -color cookie_path

Ver lo que su cookie_path está, entonces stat la carpeta y asegurarse de que su usuario php-FPM tiene acceso de escritura lo.

Para resolver este problema usando Nginx y Php-Fpm, tuve que cambiar mi cookie_path de su valor por defecto de/(en serio, ¿por qué sería esto un valor predeterminado?) A/tmp.

Después de reiniciar nginx y php-fpm, funciona perfectamente.

+0

Estoy usando lighttpd y php-fpm y las otras respuestas no me funcionaron, pero esta respuesta tiene un error: session.cookie_path es la ruta URL de la cookie de sesión, i. mi. a qué "parte" del sitio web se aplica la sesión, no dónde se almacenan los datos del servidor de sesión en el sistema de archivos. –

+0

En lugar de revocar mi comentario porque estás enojado, ¿quisiste publicar alguna información como el error que estás obteniendo? Parece que está utilizando una URL en lugar de la ruta de Unix, por lo que parece que el error es su culpa y no tiene nada que ver con mi explicación. La ruta de la sesión es definitivamente la ruta de acceso de Unix, y nunca una URL. La sesión tiene que vivir en el sistema de archivos para que haya una sesión. – DevOops

+0

De PHP.net: session.cookie_path cadena session.cookie_path especifica la ruta para establecer en la cookie de sesión.Predeterminado a /. Ver también session_get_cookie_params() y session_set_cookie_params(). – DevOops