HTTP 500 Internal Server Error: Què L’està Causant I Com Es Soluciona

Error 500 Internal Server Error

Darrera actualització:

L’Internal Server Error HTTP 500 ocorre típicament quan el servidor troba una condició inesperada que li impedeix complir la sol·licitud. Aquest post t’ajudarà a entendre les causes de l’error i a trobar solucions apropiades.

Table of Contents

Què És El HTTP 500 Internal Server Error?

Es considera un error general en el costat del servidor a causa d’un problema no especificat. Dels Estàndards RFC, tenim aquesta definició:

El codi d’estat 500 (Internal Server Error) indica que el servidor ha trobat una condició inesperada que li ha impedit complir la sol·licitud.

RFC 7231: Protocol de transferència d’hipertext (HTTP/1.1): Semàntica i contingut (rfc-editor.org)

No és un error en la teva connexió o navegador. En lloc d’això, significa que alguna cosa ha anat malament amb el lloc web.

Pantalla d'error genèric 500 en el navegador Chrome
Pantalla d’error genèric 500 en el navegador Chrome

La White Screen Of Death De l’Error 500

La “White Screen Of Death” (WSOD) és un terme utilitzat per descriure l’error 500 HTTP, i altres codis d’error HTTP 5XX quan el servidor no pot servir cap contingut a l’usuari. Alguns navegadors com Safari o Firefox presenten aquesta pantalla en blanc:

White Screen Of Death a Firefox
Firefox no mostra missatges d’error 500

Alternativament, existeixen navegadors que tradueixen l’error intern 500, mostrant diferents missatges informatius.

Diferents Missatges D’Error 500

Encara que aquest error pot aparèixer de moltes maneres, totes signifiquen el mateix. A continuació, es mostren alguns exemples de com podríeu veure un error 500 HTTP.

  • “500 – Error intern del servidor”
  • “Error 500”
  • “Error intern del servidor 500. Ho sentim, alguna cosa ha anat malament.”
  • “500 – Error intern del servidor”
  • “500. Això és un error. Hi va haver un error. Si us plau, intenta-ho de nou més tard. Això és tot el que sabem.”
  • “HTTP 500 – Error intern del servidor”
  • “HTTP 500”
  • “Error HTTP 500”
  • “Error intern del servidor”
  • “Aquesta pàgina no està funcionant en aquest moment. HTTP ERROR 500.”
  • “Aquesta pàgina no està funcionant. – localhost no pot manejar aquesta sol·licitud en aquest moment. – HTTP ERROR 500″
Error 500 generic al navegador Edge
Error 500 genérico mostrado en el navegador Edge

Quan s’habilita l’opció de mostrar errors a l’usuari i l’execució no s’interromp, el servidor pot proporcionar informació més detallada sobre els errors que quan l’usuari es troba amb una WSOD (White Screen Of Death).

En aquests casos, el servidor pot mostrar detalls crucials relacionats amb l’error, com l’arxiu i el número de línia on va ocórrer l’error, una descripció de l’error i, a vegades, una traça de pila.

La següent captura de pantalla mostra un exemple d’això, detallant un error intern del servidor 500 en una pàgina de WordPress:

Detalles de un error interno del servidor 500 en una página de WordPress

En la següent secció, trobaràs diversos escenaris que poden provocar l’aparició de l’error 500.

Causes Del 500 Internal Server Error

  • Error de base de dades en intentar recuperar dades. Per exemple, una base de dades corrupta o una sintaxi SQL incorrecta.
  • L’aplicació llença un error, com un error de temps d’execució, per exemple, una memòria PHP insuficient o un temps d’execució PHP exhaurit.
  • Hi ha un error en el codi de l’aplicació. Per exemple, PHP intenta incloure un arxiu que no existeix, o una divisió per zero interromp l’execució.
  • El teu hardware del servidor podria tenir un problema. Per exemple, tens arxius corruptes degut a una fallada al disc.
  • Hi ha un problema amb el software del servidor. Per exemple, php-fpm està mal configurat o la versió actual té un error.

Com resoldre l’error intern 500

Tal com es va mencionar a la secció anterior, les causes de l’error 500 poden ser diverses i no sempre són evidents en el navegador.

Per solucionar-lo, verifica els registres d’errors o imprimeix-los al navegador per obtenir un diagnòstic més detallat.

En el que respecta als Errors interns del servidor 500,
no hi ha una solució única per a tots.

Verificar els registres d’errors pot ajudar a identificar la causa arrel.

Com obtenir més detalls sobre els errors en PHP

La resposta és senzilla: mostrar els errors o inspeccionar els registres. L’última opció és preferible, ja que un Internal Server Error 500 a vegades pot provocar que l’execució es interrompi, el que resulta en res més que una WSOD (White Screen Of Death).

Ei, només una cosa!

Si tens un lloc web de WordPress allotjat en un servidor Wetopi,
pots accedir fàcilment als teus registres amb
només un clic del teu ratolí.

show logs

Per habilitar els registres, aquí tens dues opcions: la primera per a aplicacions PHP genèriques i la segona per a llocs web que executen WordPress.

Com mostrar i registrar errors en aplicacions PHP senzilles

  1. Habilitar la notificació d’errors: afegir la següent línia a l’inici del teu script PHP:

    error_reporting(E_ALL);
  2. Mostra errors afegint això:

    ini_set('display_errors', 1);
  3. I registra errors establint aquestes dues opcions:

    ini_set('log_errors', 'On');
    ini_set('error_log', '/ruta/a/php_errors.log');

A més, també pots establir aquestes directrius en l’arxiu de configuració PHP php.ini.

error_reporting = E_ALL

display_errors = On

log_errors = On
error_log = /ruta/a/php_errors.log

Com mostrar errors de PHP a WordPress

Pots utilitzar la constant WP_DEBUG a l’arxiu wp-config.php per mostrar errors de PHP amb WordPress. Això activarà el mode de depuració a WordPress i mostrarà tots els errors, advertències i avisos de PHP a la pantalla.

  1. Localitza l’arxiu wp-config.php: Aquest arxiu es troba al directori arrel de la instal·lació de WordPress.
  2. Obre l’arxiu wp-config.php: Pots obrir aquest arxiu utilitzant un editor de text com ara Notepad, TextEdit o Sublime Text.
  3. Afegeix la constant WP_DEBUG per mostrar els errors:
    define('WP_DEBUG', true);
  4. O bé, habilita el registre de depuració a /wp-content/debug.log amb aquesta següent constant:
    define( 'WP_DEBUG_LOG', true );
  5. Desa l’arxiu wp-config.php.

Pots obtenir una explicació més detallada i configuracions refinades en la documentació de depuració de WordPress de wordpress.org.

Microsoft Internet Information Services (IIS) mostra detalls de l’error 500

Si el teu servidor web és Microsoft IIS, les versions 7.0 i posteriors tenen un subconjunt de codis d’error HTTP 500.XX que indiquen una causa més específica de l’error 500. Aquesta subcategoria de codis d’error 500 t’ajudarà a identificar la causa de l’error.

Un últim consell:

Quan Inspeccionis Registres, Mira Al Lloc Correcte

Quan ocorri un error intern del servidor 500 en PHP, es considera un missatge de nivell d’Error en lloc d’una Advertència o Avís. Per tant, en examinar registres o pantalles de depuració per a fins de solució de problemes, concentrat exclusivament en els Errors i omet els missatges d’Advertència i Avís.

Tots els Codis d’estat HTTP

200 OK

201 Created

202 Accepted

203 Non-Authoritative Information

204 No Content

205 Reset Content

206 Partial Content

207 Multi-Status

208 Already Reported

226 IM Used

300 Multiple Choices

301 Moved Permanently

302 Found

303 See Other

304 Not Modified

305 Use Proxy

307 Temporary Redirect

308 Permanent Redirect

400 Bad Request

401 Unauthorized

402 Payment Required

403 Forbidden

404 Not Found

405 Method Not Allowed

406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout

409 Conflict

410 Gone

411 Length Required

412 Precondition Failed

413 Payload Too Large

414 Request-URI Too Long

415 Unsupported Media Type

416 Requested Range Not Satisfiable

417 Expectation Failed

418 I’m A Teapot

421 Misdirected Request

422 Unprocessable Entity

423 Locked

424 Failed Dependency

426 Upgrade Required

428 Precondition Required

429 Too Many Requests

431 Request Header Fields Too Large

444 Connection Closed Without Response

451 Unavailable For Legal Reasons

499 Client Closed Request

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

504 Gateway Timeout

505 HTTP Version Not Supported

506 Variant Also Negotiates

507 Insufficient Storage

508 Loop Detected

510 Not Extended

511 Network Authentication Required

599 Network Connect Timeout Error

Resumidament, som uns techies apassionats per WordPress que hem creat Wetopi, un Hosting WordPress Gestionat, per minimitzar la fricció a la que tot professional s’enfronta en treballar i allotjar projectes WordPress.

Inclou servidors de desenvolupament Gratis.
No cal tarjeta de crèdit.

Compara Wetopi amb el teu hosting actual

Dóna’t d’alta, demana una migració i compara.

Sense cap compromís ni esforç per part teva, migrem una còpia del teu web.

Sense lletra petita.
Sense compromisos.
Sense targeta de crèdit.