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
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.
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.
| Causa | Cómo comprobarlo | Solución |
|---|---|---|
| Un malformado .htaccess | Renombrar 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 reportar | El 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 incorrectos | Directores 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ón | El 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 llama | Los 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. |
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.
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
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
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
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
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";'
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.
¿Por qué la página no dice lo que salió mal?
¿Es un 500 diferente de una pantalla blanca?
Todo funciona excepto una página. ¿Puede ser 500?
¿Debería levantar el límite de memoria y ver?
Si el problema era otro.
Estos errores pueden parecerse en el navegador.