php - etiquetas - 500 Error de servidor: encabezados prematuros de final de script:
etiquetas php pdf (8)
¿Cuál es tu error_level en php? El mensaje de error que recibe dentro del registro es a menudo el resultado de un simple error de PHP, pero el servidor está configurado para no entregar mensajes de error al cliente por razones de seguridad. Por esto, el mensaje no es muy útil, podría ser todo.
Tengo un sitio web en php que funciona con un servidor de indexación de solr, basado en CodeIgniter.
Obtuvimos un montón de contenido nuevo, por lo que descartamos la base de datos y tuvimos que reindexar el contenido (alrededor de 168,000 elementos). Creé un script para indexar los contenidos por secciones de 500: cuando termina el script, lanzamos la siguiente indexación.
Funciona perfectamente en mi entorno de prueba local, pero en producción obtengo este error 500:
[Thu Dec 02 ...] [error] [client IP] Premature end of script headers: index.php
No hay absolutamente nada en mi php.log, solo el error_log de apache que lo devuelve. Lo he visto suceder en otras páginas del sitio web una o dos veces, pero fue durante esta indexación.
¿Algunas ideas?
Este error generalmente (a veces) es causado por la configuración FastCGI de la directiva FcgidIOTimeout
(nombre antiguo: IPCCommTimeout
).
Ese es el número de segundos para el tiempo de espera IO, el valor predeterminado es 40 segundos. Tiempo de espera significa que
"La aplicación FastCGI debe comenzar a generar la respuesta dentro de este período de tiempo. Aumente esta directiva según sea necesario para manejar aplicaciones que tarden un período de tiempo relativamente largo para responder".
Puedes intentar resolverlo poniendo esto en tu vhost.conf:
<IfModule mod_fcgid.c>
# 5 minutes for IO timeout, default is 40 seconds
FcgidIOTimeout 300
</IfModule>
Puede aumentarlo según lo necesite y luego restablecer el valor original una vez que se complete el proceso de reindexación.
Hay una buena lista sobre las posibilidades en la KB de Liquid Web;
Actualizar o degradar a una versión diferente de PHP puede dejar opciones residuales en el httpd.conf. Verifique la versión actual de PHP usando php -v en la línea de comando y busque cualquier línea que mencione otra versión en el httpd.conf. Si los encuentra, coméntelos, destile el httpd.conf y reinicie apache.
Las directivas RLimitCPU y RLimitMEM en httpd.conf también pueden ser responsables del error si un script se eliminó debido a un límite de recursos.
Un problema de configuración en suEXEC, mod_perl u otro módulo de terceros a menudo puede interferir con la ejecución de los scripts y provocar el error. Si esta es la causa, se encontrará información adicional relacionada con detalles en el archivo error_log de apache.
Si el registro de suphp alcanza un tamaño de 2 GB o superior, es posible que vea el final prematuro de los scripts en el encabezado de error. Vea lo que contiene el registro y grácese o anótelo. Reinicie apache y luego trate con cualquier problema que el registro suphp trajo a la luz. El registro de suphp se encuentra en: / usr / local / apache / logs / suphp_log
Los permisos del script también pueden causar este error. Los scripts CGI solo pueden acceder a los recursos permitidos para el Usuario y el Grupo especificados en el httpd.conf. En este caso, el error puede simplemente señalar que un usuario no autorizado está intentando acceder a un script.
http://www.liquidweb.com/kb/apache-error-premature-end-of-script-headers/
Si estuviera en la misma situación, primero verificaría los permisos y luego continuaría con 3 y 4.
También recibí este mensaje de error en etc / httpd / logs / error_log después de un error del servidor interno 500 que intenta cargar un sitio web.
Para mí, la solución eran los permisos: tuve que chmod 755 el archivo. Creé el archivo como un usuario de nivel de acceso más alto que el que estaba "cargando" el sitio en el servidor.
Tuve el mismo problema, solo reinicie el servidor apache y funciona
Tuve este problema y después de luchar durante más de 5 horas, deshabilité xcache y todo volvió a la normalidad, el error desapareció.
se olvidó de agregar un encabezado de tipo de contenido en la respuesta, que es un encabezado http obligatorio cuando se hospeda en apache2
header(''Content-Type: text/html'');
también puede hacerlo por usar la extensión PHP APC de una manera incorrecta. así que primero elimine apc.so de php.ini restart apache y pruébelo nuevamente :)