I codici di stato HTTP for­ni­sco­no in­for­ma­zio­ni riguardo alla ricezione di una richiesta su Internet, prin­ci­pal­men­te indicando se abbia avuto successo e se no quale errore si nasconda dietro. Ma i messaggi delle notifiche di errore non sono sempre chiari. Questo vale so­prat­tut­to per “500 Internal Server Error”: questa notifica di errore segnala che durante la con­nes­sio­ne al server si è generato un errore per cui non è stato possibile aprire la pagina richiesta, tuttavia non ne viene dato il motivo. Per fortuna, però, ci sono diversi metodi per rin­trac­cia­re la causa del dis­ser­vi­zio. Nell’articolo seguente vi in­di­chia­mo le tipiche fonti di un errore HTTP 500 dandovi consigli su come reagire cor­ret­ta­men­te.

Registra il tuo dominio
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Cosa significa “Internal Server Error”?

Con i codici di stato il web server comunica al browser (ovvero il client) di un utente, se una richiesta, ovvero l’apertura di una pagina online, abbia avuto successo o meno. Se il browser riceve come risposta lo stato 200 allora sa che tutto è filato liscio. L’utente non vedrà questo messaggio e al suo posto vi­sua­liz­ze­rà invece i contenuti richiesti. Di­ver­sa­men­te accade però per quanto concerne i codici 400 e 500: mentre i primi indicano degli errori lato client, i secondi, al contrario, ri­guar­da­no il server.

L’“Internal Server Error 500”, in italiano “errore interno del server”, è una raccolta di codici di stato per errori lato server. Per questo motivo a prima vista non è nemmeno immediato capire da cosa sca­tu­ri­sca l’errore. L’utente viene solamente a sapere che il server segnala un errore ina­spet­ta­to. Nel caso in cui il server abbia però in­stal­la­to Microsoft In­for­ma­tion Service (Microsoft IIS), il codice di errore verrà spe­ci­fi­ca­to. Le cifre dopo il punto si ri­fe­ri­sco­no in maniera più det­ta­glia­ta alle cause di errore:

  • 500.0: un modulo o una ISAPI sono difettosi.
  • 500.11: un’ap­pli­ca­zio­ne sta per essere arrestata sul server.
  • 500.12: un’ap­pli­ca­zio­ne viene riavviata sul server.
  • 500.13: il web server è al momento so­vrac­ca­ri­co.
  • 500.15: non è ammessa una richiesta diretta per il file (opzionale) global.asax.
  • 500.19: i dati relativi alla con­fi­gu­ra­zio­ne non sono validi.
  • 500.21: non è stato ri­co­no­sciu­to un modulo.
  • 500.22: non è possibile ef­fet­tua­re la con­fi­gu­ra­zio­ne di un modulo HTTP (all’interno di un’ap­pli­ca­zio­ne web ASP.NET) in modalità Pipeline gestita.
  • 500.23: non è possibile ef­fet­tua­re la con­fi­gu­ra­zio­ne dell’elemento handlers HTTP (all’interno di un’ap­pli­ca­zio­ne web ASP.NET) in modalità Pipeline gestita.
  • 500.24: non è possibile ef­fet­tua­re la con­fi­gu­ra­zio­ne di un cambio di identità (per ASP.NET) in modalità gestita Pipeline.
  • 500.50: durante l’ela­bo­ra­zio­ne del messaggio RQ_BEGIN_REQUEST, è sorto un errore durante il pro­ce­di­men­to di ri­scrit­tu­ra.
  • 500.51: durante l’ela­bo­ra­zio­ne del messaggio GL_PRE_BEGIN_REQUEST, è sorto un errore durante il pro­ce­di­men­to di ri­scrit­tu­ra.
  • 500.52: durante l’ela­bo­ra­zio­ne del messaggio RQ_SEND_RESPONSE, è sorto un errore durante il pro­ce­di­men­to di ri­scrit­tu­ra.
  • 500.53: durante l’ela­bo­ra­zio­ne del messaggio RQ_RELEASE _REQUEST_STATE, è sorto un errore durante il pro­ce­di­men­to di ri­scrit­tu­ra.
  • 500.100: si è generato un errore all’interno dell’engine ASP.

Quali cause portano all’errore 500?

L’Internal Server Error può ve­ri­fi­car­si durante l’ela­bo­ra­zio­ne della richiesta tramite il web server. Il codice di stato generico comprende tutto ciò che può accadere ina­spet­ta­ta­men­te e che può quindi anche impedire la vi­sua­liz­za­zio­ne di un sito web. Pro­ba­bil­men­te l’errore di server 500 si è pre­sen­ta­to perché durante la con­fi­gu­ra­zio­ne del web server si è ve­ri­fi­ca­to un mal­fun­zio­na­men­to. Le tipiche fonti di errore del codice di stato 500 sono svariate:

  • Errore di permessi: i permessi dei file e delle cartelle prin­ci­pa­li non sono stati stabiliti cor­ret­ta­men­te.
  • Timeout del PHP: lo script tenta di attingere a una risorsa esterna e si imbatte così in un timeout.
  • Errore di sintassi o del codice negli script CGI/Perl: in alcuni casi sono gli script a essere errati. In par­ti­co­la­re i percorsi possono essere stati impostati in modo non corretto.
  • Limite di memoria PHP: il processo supera la capacità di memoria PHP e non può quindi essere eseguito in maniera corretta.

Oltre a ciò nelle pagine WordPress o di altri Content Ma­na­ge­ment System la causa di un avviso di errore può anche essere l’in­stal­la­zio­ne di un’esten­sio­ne difettosa o in­com­pa­ti­bi­le: i plug-in e i temi – so­prat­tut­to di provider terzi – possono com­pro­met­te­re l’intero sito web.

Come i webmaster possono cor­reg­ge­re il 500 Internal Server Error

Se i vi­si­ta­to­ri del vostro sito web al posto dei contenuti vi­sua­liz­za­no solamente l’errore 500 interno del server, come gestori dovreste ap­proc­cia­re il problema di­ret­ta­men­te. Difatti non solo i vi­si­ta­to­ri del vostro sito web si sentono in­ti­mi­di­ti, ma Google potrebbe pe­na­liz­zar­vi e po­si­zio­nar­vi più in basso nel ranking. Prima di correre ai ripari, ve­ri­fi­ca­te in­nan­zi­tut­to che il vostro server sia ancora in funzione perché se così non fosse, allora urge una presa di contatto con il vostro servizio di hosting.

Causa di errore n. 1: file di log

Se sussiste un errore interno per prima cosa prendete in esame i file di log: se uti­liz­za­te un server Linux la raccolta delle notifiche di errore dovrebbe trovarsi nel percorso /var/log/httpd/error_log. Tuttavia conviene ri­ca­ri­ca­re di nuovo la pagina per ri­pro­dur­re l’errore HTTP 500 ed osservare la ge­ne­ra­zio­ne del file di log. In questo modo siete in grado di trovare la fonte di errore ab­ba­stan­za in fretta. Chie­de­te­vi anche quali siano le modifiche che avete applicato di recente. In molti casi sono i plug-in pro­gram­ma­ti in modo errato oppure di­ret­ta­men­te in­com­pa­ti­bi­li a provocare le notifiche di errore.

Causa di errore n. 2: processo di as­se­gna­zio­ne dei permessi

Tuttavia l’errore può comparire anche nel caso in cui non abbiate stabilito cor­ret­ta­men­te i permessi in relazione a file im­por­tan­ti. In generale esistono tre tipi di permessi:

  • Lettura (r per read)
  • Scrittura (w per write)
  • Ese­cu­zio­ne (x per execute)

Questi permessi possono essere assegnati a tre diverse tipologie di utente:

  • Pro­prie­ta­rio del file
  • Gruppo di utenti
  • Tutti gli altri

I permessi vengono indicati o per mezzo delle ab­bre­via­zio­ni r, w e x oppure con i ri­spet­ti­vi valori numerici: 4 per “Lettura”, 2 per “Scrittura” e 1 per “Ese­cu­zio­ne”. Per ogni tipologia di utente vengono sommati e indicati in suc­ces­sio­ne uno dopo l’altro: rwxr-xr-x (rwx per il pro­prie­ta­rio, r-x per il gruppo e r-x per tutti gli altri) oppure 755, la con­fi­gu­ra­zio­ne che dovrebbe essere l’im­po­sta­zio­ne standard. Se l’as­se­gna­zio­ne di permessi viene stabilita di­ver­sa­men­te può ve­ri­fi­car­si un errore. Potete però mo­di­fi­car­lo con un comando:

chmod 755 nome del file

Ma se questa modifica non dovesse risolvere il problema, potete anche provare a ri­la­scia­re tutti i permessi ad ogni gruppo:

chmod 777 nome del file

Uti­liz­za­te questa im­po­sta­zio­ne solamente per lo­ca­liz­za­re il problema. In questo modo avete dato il permesso a qualsiasi utente di ri­scri­ve­re il file, cosa che na­tu­ral­men­te rap­pre­sen­ta un rischio in termini di sicurezza.

Causa di errore n. 3: verifica degli script e della sintassi dei file

Se non è stato il processo di as­se­gna­zio­ne dei permessi a generare la notifica di errore, allora ac­cer­ta­te­vi che i vostri script fun­zio­ni­no cor­ret­ta­men­te. A volte, infatti, possono ve­ri­fi­car­si degli errori perché i file degli script sono stati traferiti, ri­no­mi­na­ti o eliminati.

Causa di errore n. 3.1: file .htaccess

Prendete in esame anche il file .htaccess, perché può bastare anche solo un errore di sintassi –  per quanto piccolo possa essere – per provocare l’Internal Server Error.

Causa di errore n. 3.2: for­mat­ta­zio­ne ASCII o ANSI

Un errore al­tret­tan­to frequente è la for­mat­ta­zio­ne sbagliata del file .htaccess: questa deve infatti essere creata in formato ASCII o ANSI, non in Unicode. Per questo motivo è rac­co­man­da­bi­le scrivere il file con un editor di testo come ad esempio Notepad, Notepad++ o Sublime Text, e non con un programma di ela­bo­ra­zio­ne di testi come Microsoft Word. Per testare se sia il file ad essere re­spon­sa­bi­le per l’errore, potete ri­no­mi­nar­lo tem­po­ra­nea­men­te e ri­ca­ri­ca­re di nuovo la pagina. Il server non attingerà ad .htaccess durante il ca­ri­ca­men­to del sito. Se la notifica di errore non dovesse più comparire, allora potete riparare il file oppure generarne uno nuovo.

Causa di errore n. 4: timeout

Del resto anche un timeout può portare a un avviso di errore. In questo caso non si tratta nemmeno di un errore del web server, bensì piuttosto dell’in­ter­ru­zio­ne della con­nes­sio­ne a una fonte esterna. Se gli script PHP del vostro sito web sono impostati in modo tale da attingere a risorse di altri server, even­tual­men­te la risorsa non è più di­spo­ni­bi­le oppure la co­mu­ni­ca­zio­ne al server è di­stur­ba­ta per un qualsiasi motivo. Una pos­si­bi­li­tà di escludere questa fonte di errore è na­tu­ral­men­te quella di non fare dipendere la vostra pagina da risorse esterne. Se però ciò non dovesse essere possibile, potete aumentare il time limit del vostro script. Oltre a ciò risulta sensato includere un ef­fi­cien­te error handling, così da rin­trac­cia­re con maggiore pre­ci­sio­ne gli errori all’interno degli script PHP.

Causa di errore n. 5: capacità della memoria PHP

Se avete il timore che la RAM possa essere so­vrac­ca­ri­ca, potete servirvi del Memory Limit per ve­ri­fi­ca­re quanta per­cen­tua­le di memoria venga impegnata durante un processo. Se venisse richiesta più RAM di quanto non ce ne sia a di­spo­si­zio­ne, allora la con­se­guen­za potrebbe essere un Internal Server Error. Come soluzione prov­vi­so­ria potreste aumentare il limite della memoria. A questo scopo ag­giun­ge­te un comando all’interno di php.ini seguendo questo schema:

memory_limit = 512M

In questo esempio la capacità di memoria PHP viene fissata a 512 MB. Tenete però in con­si­de­ra­zio­ne che il vostro servizio di hosting può ga­ran­tir­vi solamente un certo limite di script PHP nell’ambito dell’offerta che avete ac­qui­sta­to. Se quindi inserite un valore più alto il web server lo ignorerà. E comunque in ogni caso l’aumento del limite deve essere solamente una soluzione pas­seg­ge­ra: non appena la vostra pagina torna a fun­zio­na­re dovreste ricercare il motivo per la richiesta di uno spazio sulla RAM più elevato. Con grande pro­ba­bi­li­tà l’errore si troverà all’interno del codice del vostro sito.

Causa di errore n. 6: stato del server

Se l’errore dovesse con­ti­nua­re a per­si­ste­re con­trol­la­te lo stato del server: quando sorge un problema molti provider di servizi di hosting pub­bli­ca­no lo stato dei loro server at­tra­ver­so una pagina di stato oppure informano gli utenti sui social media. Nel caso fosse stata data notizia di mal­fun­zio­na­men­ti al server dovete armarvi di pazienza: difatti non vi resta che attendere che il team di tecnici del provider abbia prov­ve­du­to a riparare l’errore.

Consiglio

Anche IONOS è provvista di una pagina di stato, sulla quale i clienti dell’offerta di hosting vengono informati riguardo a eventuali mal­fun­zio­na­men­ti del servizio.

Causa di errore n. 7: ignota

Per con­clu­de­re se non fossero state pub­bli­ca­te in­for­ma­zio­ni riguardo a eventuali mal­fun­zio­na­men­ti, allora vi conviene ricorrere al supporto. Se infatti non siete riusciti a rag­giun­ge­re una soluzione con nessuno dei metodi proposti, allora è una buona idea con­tat­ta­re il vostro servizio di hosting. Co­mu­ni­ca­te quali prov­ve­di­men­ti avete preso finora così sapranno presto esservi d’aiuto.

Come deve reagire chi naviga se si presenta un errore HTTP 500?

Di base come vi­si­ta­to­ri di un sito web potete fare poco se incappate in un Internal Server Error. Il web server sul quale si trova la pagina inficiata presenta una con­fi­gu­ra­zio­ne errata. Ciò significa che non è presente alcun errore nelle im­po­sta­zio­ni del vostro computer o della con­nes­sio­ne di rete.

Soluzione n. 1: attendere

Proprio per questo motivo di solito la soluzione più facile per gli utenti è quella di aspettare e aprire la pagina in un secondo momento. Da un lato può essere infatti che nel frattempo il webmaster abbia già corretto l’errore, cosa molto probabile per quanto riguarda grandi provider. Dall’altro può succedere che abbiate ac­ci­den­tal­men­te aperto dei contenuti in un momento svan­tag­gio­so per il web server: se siete capitati proprio in una si­tua­zio­ne del genere e il servizio si sta avviando di nuovo, vi apparirà il messaggio di errore anche se tutto funziona cor­ret­ta­men­te.

Consiglio

Se vi imbattete in una notifica di errore durante un processo di ordine non ri­ca­ri­ca­te di nuovo la pagina. Del resto non potete sapere il momento preciso in cui si è pre­sen­ta­to l’errore. Può essere che sia fallito solamente il processo di ca­ri­ca­men­to della pagina di conferma ma che il vostro ordine sia già stato re­gi­stra­to dal sistema. In questo caso un refresh potrebbe implicare un ordine doppio.

Soluzione n. 2: svuotare la cache

È al­tret­tan­to possibile che il server sia stato messo sotto pressione da un im­prov­vi­so aumento delle richieste di apertura del sito web. In teoria anche questo problema dovrebbe so­li­ta­men­te ri­sol­ver­si nel giro di pochi secondi, a meno che il sito web non sia per­ma­nen­te­men­te so­vrac­ca­ri­co. Se ricevete la notifica di errore anche dopo aver ef­fet­tua­to il refresh della pagina dovreste in­nan­zi­tut­to can­cel­la­re la cache del vostro browser. Even­tual­men­te poi il browser non caricherà la versione attuale della pagina, ma attingerà alla sua memoria interna. Provate quindi ad aprire nuo­va­men­te il sito web una volta che avete svuotato la cache.

Soluzione n. 3: attingere alla cache di Google

Se con­ti­nua­te ancora a vedere il messaggio “500 Internal Server Error” prima di ri­nun­cia­re del tutto e ras­se­gnar­vi ad attendere, date l’ultima pos­si­bi­li­tà a un truc­chet­to che potrebbe aiutarvi ad accedere comunque ai contenuti del sito web. Se infatti non è fon­da­men­ta­le che abbiate a di­spo­si­zio­ne la versione più ag­gior­na­ta del sito web, potete ricorrere alla cache di Google: se immettete il comando cache: seguito dall’URL in questione nella barra di ricerca di Google, potete attingere a una versione anteriore, e quindi fun­zio­nan­te, della pagina online. Non potrete navigare del tutto come se vi trovaste sul sito vero e proprio, bensì sarete limitati a muovervi sulla sua copia che si trova sul server di Google.

Se per trovare una versione fun­zio­nan­te della pagina vi tocca scavare molto nel passato, allora può esservi d’aiuto la bi­blio­te­ca digitale dell’Internet Archive: Wayback Machine. Qui si trovano in parte versioni di siti web vecchie persino di decenni.

Soluzione n. 4: con­tat­ta­re il webmaster

Infine se il sito web che volete aprire continua a non essere rag­giun­gi­bi­le per un periodo di tempo più lungo del normale, allora potete na­tu­ral­men­te anche con­tat­ta­re il webmaster o il servizio preposto. In effetti può anche essere che non siano ancora al corrente del fatto che gli utenti non siano in grado di accedere all’offerta, per cui saranno si­cu­ra­men­te felici di ricevere un ag­gior­na­men­to.

Vai al menu prin­ci­pa­le