back to top

Errore 500 Internal Server Error: cos’è e come risolverlo nel vostro sito

Sviluppando per il web uno degli errori più subdoli e difficili che capita di dover risolvere è, senza dubbio, il fatidico errore HTTP 500 più comunemente noto come Internal server error o, più semplicemente, errore 500.

Quando si verifica l’errore 500?

Questo errore si presenta quando si verifica una condizione inaspettata che rende impossibile al server di soddisfare una data richiesta del client. E’ bene precisare fin da subito che la causa di questo errore è da cercarsi, prevalentemente, nel server (e non nel client), in quanto questo tipo di errore riguarda, appunto, l’incapacità del server di restituire la risorsa richiesta dal client per un motivo "interno" al server stesso (parliamo infatti di Internal server error cioè di un errore interno del server).

Si noti che il messaggio di errore non è univoco e può variare a seconda del sistema operativo ma anche del browser (che riceve ed interpreta lo stato HTTP 500).

Errore 500

Questi i principali messaggi che si accompagnano al verificarsi di un Errore 500:

  • HTTP 500
  • Internal Server Error
  • 500 Internal Server Error
  • HTTP 500 – Internal Server Error
  • 500 Error
  • 500 – Internal Server Error
  • 500 Internal Server Error. Sorry something went wrong.
  • 500. That’s an error. There was an error. Please try again later. That’s all we know.
  • The website cannot display the page – HTTP 500.

Un’ulteriore possibilità è, semplicemente, una schermata bianca (senza nessun avviso o scritta).

Purtroppo tutti questi messaggi sono alquanto generici e non offre allo sviluppatore alcun suggerimento su quale possa essere la sua causa e su come possa essere risolto il problema che ha causato l’errore. Si tratta, come è facile intuire, di una scelta ben precisa in termini di sicurezza: sarebbe alquanto inopportuno, infatti, esplicitare agli utenti eventuali errori o cattive configurazioni del server, in quanto ciò potrebbe essere utilizzato da dei malintenzionati per aggredire il sistema.

Quali sono le cause dell’errore 500?

La causa di un simile errore può essere davvero eterogenea e non è sempre facile per lo sviluppatore identificarla velocemente. In linea di massima possiamo dire che, solitamente, le cause dell’errore 500 sono da ricercare tra le seguenti:

  • problemi nel sorgente degli script;
  • problemi nei permessi su file e/o cartelle;
  • errori di configurazione del web server.

Nonostante la casistica sia piuttosto variegata, è comunque possibile identificare delle cause piuttosto comuni del errore 500, proviamo ad elencarle di seguito distinguendo, opportunamente, a seconda che il Vostro sito web sia ospitato all’interno di un web-server Apache o IIS.

Errore 500: cause comuni su Apache

  • il server è sovraccarico e non riesce a soddisfare tutte le richieste in entrata;
  • lo script ha degli errori nel codice che l’interprete non è in grado di bypassare;
  • lo script utilizza risorse remote (ad esempio un database o un file XML) che non sono raggiungibili;
  • erronea gestione dei permessi su file e cartelle (ad esempio mancanza dei permessi di scrittura in una cartella);
  • errori nel file .htaccess (ad es. una cattiva scrittura di regole di URL rewriting);
  • se si utilizzano script Perl è bene assicurarsi di averli caricati sul server in modalità ASCII (e non binaria);

Errore 500: cause comuni su IIS

  • il server è sovraccarico e non riesce a soddisfare tutte le richieste in entrata;
  • i file di configurazione web.config e app.config non sono leggibili o sono invalidi;
  • cattiva formattazione dei file Global.asa o Global.asax;
  • ci sono problemi legati al funzionamento di un modulo ISAPI;
  • il sito web è "stoppato" (verificate sulla console IIS che il sito sia running e non stopped);

Come risolvere l’errore 500?

Quelle che abbiamo elencato sono solo alcune delle possibili cause dell’Internal server error in quanto non è possibile definire una lista esaustiva ma solo un elenco di common causes.

Se il vostro problema non rientra tra quelli elencati l’unica via da seguire e quella di effettuare un debug completo dello script che restituisce l’errore. In questo caso la prima cosa da fare è partire dall’analisi dei log. Spulciando l’error log del vostro web server, infatti, potrete trovare informazioni preziose sui problemi dei vostri script e, di conseguenza, potrete lavorare più facilmente alla loro correzione.

Risolvere l’errore 500 quando si utilizzano script PHP

Una procedura utile per effettuare il debug di script PHP può essere quella di abilitare la visualizzazione degli errori. Per farlo è necessario integrare poche righe di codice all’inizio dello script che si sospetta essere la causa dell’errore:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Potrebbe essere utile anche modificare il file php.ini modificando la direttiva display_errors su "on".

display_errors = on

Risolvere l’errore 500 quando si utilizza WordPress

Se si utilizza WordPress, il debug degli errori HTTP 500 potrebbe essere facilitato dall’attivazione della modalità di debug. Per farlo è necessario modificare il file wp-config.php aggiungendo queste righe di codice (se non già presenti):

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Se non si riesce ad identificare l’errore potrebbe essere utile disabilitare tutti i plugin e riattivarli uno per volta effettuando un test dopo ogni attivazione di plugin. Una volta identificato il "colpevole" sarà possibile decidere se rinunicare al plugin, cercarne degli alternativi oppure contattarne lo sviluppatore per chiedere assistenza.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

ERR_TOO_MANY_REDIRECTS: cos’è e come risolvere l’errore

L'errore ERR_TOO_MANY_REDIRECTS si verifica quando un browser tenta di...

Lucchetto HTTPS barrato di rosso: cosa significa e come risolvere

Il lucchetto HTTPS barrato di rosso mostrato dal browser...

Risolvere l’errore Bad Request … Size of a request header field exceeds server limit

L'errore "Bad Request: Your browser sent a request that...

NGinx: cos’è, come funziona e perché conviene usarlo

Prima di parlare di NGinx, delle sue caratteristiche e...

Errore 410: cos’è, quando si verifica e come risolvere (se necessario)

Il codice di stato HTTP 410 (o “Gone”), più...

Errore 451 Unavailable For Legal Reasons: cos’è e quando si verifica

L'errore HTTP 451 Unavailable For Legal Reasons รจ un...
Pubblicitร