Interal Server Error 500 – session_start ()

Bueno, encontré bastantes hilos con ISE 500 , pero ninguna de las soluciones funcionó para mí.

Desarrollé una aplicación de Facebook para que nuestro cliente presente algunos audiotracks y, por supuesto, me gustaría pasar algunos parámetros a la aplicación por parámetro de datos de la aplicación. Así que integé el facebook sdk 3.1.1. Hizo todo lo posible para conectarse correctamente a Facebook.

En mi xampp local todo funciona bien, el servidor web de nuestra empresa también ejecuta la aplicación sin ningún problema, al igual que mi espacio web privado. Pero cuando subo la aplicación al servidor de clientes obtengo un 500: Error interno del servidor. Para descartar cualquier error de scripts extraño de mi lado, traté de ejecutar el example.php que viene con el sdk. Mismo error. Incluso cuando intenté crear una instancia de la clase de Facebook de esta manera:

 '???', 'secret' => '??????', )); ?> 

Ya miré los registros de errores de los servidores. Lo único que menciona es esto:

“Cabeceras prematuras de scripts: example.php”

También utilicé el error_reporting(E_ALL); ampliamente sugerido error_reporting(E_ALL); para evitar errores en el manejo del error en el servidor. Nada. El servidor simplemente no me dirá qué está mal.

Encontré bastantes razones por las cuales otras personas obtuvieron este error, los más destacados:

  • ?> Falta la etiqueta ?> En facebook.php / base_facebook.php
  • Varias instancias de Facebook – y FacebookApiException

… ninguna de las soluciones proporcionadas funcionó para mí.

Así que traté de comparar los phpinfos de ambos, el cliente y el servidor de nuestra empresa. Por supuesto que hubo algunas diferencias, pero nada obvio para mí. Busqué las cosas básicas que las personas en los foros ya habían asociado con un ISE 500 como la extensión cURL , versión de php (5.3.9) . No soy un administrador de servidor, solo tengo un conocimiento básico de las configuraciones de servidor. Así que para estar seguro de que falta algo intenté encontrar los requisitos del servidor para el sdk de Facebook …

… pero toda la web no me dirá los requisitos del servidor para el facebook sdk. Incluso la documentación de Facebook no menciona nada. Así que espero que haya alguien por aquí que pueda ayudarme con esto.

Y sí … ya le pedí ayuda al administrador del servidor, él solo me miró con dos interrogantes en los ojos … y sí … tengo que usar el servidor del cliente 🙁 suspiro

Agradeciendo de antemano…


ACTUALIZAR:
Enumeraré las cosas que intenté en respuesta a sus sugerencias:

Servidor:
– La extensión cURL está instalada (7.20.1)
– La versión de php es 5.3.9.
– intenté incluir otros archivos, funciona bien. No parece ser un problema de ruta
– Los registros de errores del servidor solo muestran “Cabeceras prematuras de script: example.php”
– log_errors está habilitado. error_log dice ‘sin valor’
– intentado ini_set("display_errors", true); para el seguimiento de errores … sin efecto


ACTUALIZACIÓN 2

Así que pude identificar el problema después de verificar los archivos de Facebook fila por fila. El error interno del servidor 500 se produce al inicio después de intentar iniciar una sesión:

 if(!session_id()) { session_start(); } 

Envié esta información al administrador del servidor y al cliente … supongo que ya no está en mis manos, actualizaré esta publicación cuando reciba una respuesta. Gracias por sus comentarios chicos 🙂


SOLUCIÓN

Ok, el administrador del servidor ahora identificó el problema. Session.save_handler se configuró en ‘usuario’, lo cambió a ‘archivos’, ahora todo funciona:

 session.save_handler = files 

Gracias de nuevo por la ayuda!

Intente agregar esto en la parte superior de su script, antes de incluir:

 ini_set("display_errors", true); 

Este es un ejemplo perfecto de una pregunta excepcionalmente mala.

Si bien el único problema es how to get an error message from PHP , usted escribió una novela completa sobre las cosas que nadie necesita saber. No importa si ejecuta una aplicación de Facebook o cualquier otra cosa. No importa qué versión curl haya instalado.

Lo único que necesitas es un mensaje de error de PHP.
Tienes que rastrearlo. Consulte las directivas error_reporting , error_log y log_errors en phpinfo ().
Verifique el directorio de inicio del usuario para los archivos de registro adicionales. Pregúntale al administrador del servidor por los archivos de registro. ESTA debe ser la única dirección de su búsqueda: un mensaje de error de PHP.

El phpinfo () tenía la respuesta. En sesión, el parámetro save_handler debe establecerse desde:

session.save_handler = user

a:

session.save_handler = files