NuevoBlack Friday: 50 % de descuento en tu primer pago
Solución de problemas de WordPress

500 Error de servidor interno

El servidor web intentó producir la página, algo salió mal dentro, y devolvió un código de estado en lugar de una razón.

500 Internal Server Error

Respuesta breve

La razón es en el registro de errores del servidor, no en la página. Lea las últimas líneas de él antes de cambiar cualquier cosa - un 500 causado por un malformed .htaccess y un 500 causado por una necesidad fatal PHP correcciones opuestos.

Diagnóstico

Las causas más probables primero.

Revisa la lista en orden. Cada comprobación permite confirmar o descartar una causa antes de hacer cambios: las soluciones son distintas y adivinar cuesta más que ejecutar un comando.

CausaCómo comprobarloSolución
Un malformado .htaccessRenombrar el archivo y recargar. Si el 500 se convierte en una página de trabajo o un 404, .htaccess fue la causa.Deja que WordPress escriba una limpia por re-salvar los permalinks. Una directiva de un plugin que el servidor no soporta es la razón habitual.
Un error mortal PHP que el manejador no pudo reportarEl registro de errores de PHP tiene un "error fatal" de entrada a su solicitud, mientras que el registro de acceso registra los 500.Trate de ella como un fatal: encontrar el archivo llamado, desactivar el plugin o el tema que lo posee.
Permisos de archivo incorrectosDirectores que no son 755 o archivos que no son 644, o cualquier grupo- o mundo-escrito que el manejador se niega a ejecutar.Reiniciarlos. Un restituir de una copia de seguridad que no conserva los modos es la causa habitual de que un árbol entero esté equivocado de una vez.
Una extensión PHP falta después de un cambio de versiónEl registro de errores nombra una función definida en lugar de un problema de sintaxis - una llamada a algo que el nuevo PHP build no proporciona.Instala la extensión o vuelve a la versión PHP que la tenía. Cambiar las versiones PHP es cuando esto aparece.
El servidor se quedó sin un recurso que no se llamaLos 500 son intermitentes bajo carga y ausentes cuando el sitio es tranquilo.Mira los límites de proceso y la memoria antes de tocar WordPress. Un intermitente 500 es una historia de capacidad, no una historia de código.
Guía

Solución paso a paso.

Los comandos requieren WP-CLI y acceso a la consola. Si no los tienes, cada paso explica cómo hacer lo mismo desde el panel o por SFTP.

  1. Lea el registro de error del servidor primero

    Todo lo demás en esta página es una suposición hasta que lo tengas. La ubicación varía; estos dos cubren la mayoría de las pilas.

    tail -n 40 /var/log/nginx/error.log
    tail -n 40 /var/log/apache2/error.log
  2. Saca .htaccess fuera de la imagen

    Un renombre le dice si las reglas de reescritura están involucradas, sin borrar nada.

    mv .htaccess .htaccess.off
  3. Si eso lo arregló, tener WordPress escribir uno nuevo

    Los permalinks que ahorran regenera el bloque WordPress posee y deja caer cualquier otra cosa que se había acumulado.

    wp rewrite flush --hard
  4. Compruebe los permisos a través del árbol

    Los directorios ejecutables, no archivos. Cualquier cosa que el mundo pueda ser un riesgo de 500 y una seguridad.

    find . -type d ! -perm 755 | head
    find . -type f ! -perm 644 | head
  5. Confirmar PHP en sí es saludable

    Si PHP no puede ejecutar un archivo trivial, el problema está por debajo de WordPress por completo.

    php -v && php -r 'echo "php ok\n";'
En MagicWP

De esto se encarga la plataforma.

No hay .htaccess a malform - nginx posee las reescrituras, y se aplican desde la configuración en lugar de desde un archivo dentro de la raíz web que cualquier plugin puede anexar. Las versiones PHP se cambian por sitio con el conjunto de extensión que va con ellos, por lo que la versión de falta de extensión de este no sobrevive el interruptor, y el registro de error es un clic desde el panel en lugar de adivina.

Preguntas frecuentes

Preguntas frecuentes.

¿Por qué la página no dice lo que salió mal?
Por diseño. A 500 es el código de estado para "algo fallado dentro del servidor", y el detalle se retiene deliberadamente de los visitantes porque describiría su sistema de archivos a extraños. El detalle va al registro de errores en su lugar.
¿Es un 500 diferente de una pantalla blanca?
Sí, y la diferencia importa. A 500 significa que el servidor respondió con un estado de error; una pantalla blanca generalmente significa que devolvió 200 y un cuerpo vacío.
Todo funciona excepto una página. ¿Puede ser 500?
Sí. Una plantilla única o una ruta de plugin único puede fatal mientras que cada otra URL renderiza. Reducirla por la URL en el registro de acceso en lugar de asumir que todo el sitio está afectado.
¿Debería levantar el límite de memoria y ver?
No primero. Eso fija exactamente una de las causas aquí y oculta a los demás cambiando el tiempo. Lea la línea de registro antes de cambiar un valor.
Errores relacionados

Si el problema era otro.

Estos errores pueden parecerse en el navegador.