Errore HTTP 500: dov’è il problema?
I codici di stato HTTP forniscono informazioni riguardo alla ricezione di una richiesta su Internet, principalmente 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 soprattutto per “500 Internal Server Error”: questa notifica di errore segnala che durante la connessione 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 rintracciare la causa del disservizio. Nell’articolo seguente vi indichiamo le tipiche fonti di un errore HTTP 500 dandovi consigli su come reagire correttamente.
- Certificato SSL Wildcard incluso
- Registrazione di dominio sicura
- Indirizzo e-mail professionale da 2 GB
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 visualizzerà invece i contenuti richiesti. Diversamente accade però per quanto concerne i codici 400 e 500: mentre i primi indicano degli errori lato client, i secondi, al contrario, riguardano 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 scaturisca l’errore. L’utente viene solamente a sapere che il server segnala un errore inaspettato. Nel caso in cui il server abbia però installato Microsoft Information Service (Microsoft IIS), il codice di errore verrà specificato. Le cifre dopo il punto si riferiscono in maniera più dettagliata alle cause di errore:
- 500.0: un modulo o una ISAPI sono difettosi.
- 500.11: un’applicazione sta per essere arrestata sul server.
- 500.12: un’applicazione viene riavviata sul server.
- 500.13: il web server è al momento sovraccarico.
- 500.15: non è ammessa una richiesta diretta per il file (opzionale) global.asax.
- 500.19: i dati relativi alla configurazione non sono validi.
- 500.21: non è stato riconosciuto un modulo.
- 500.22: non è possibile effettuare la configurazione di un modulo HTTP (all’interno di un’applicazione web ASP.NET) in modalità Pipeline gestita.
- 500.23: non è possibile effettuare la configurazione dell’elemento handlers HTTP (all’interno di un’applicazione web ASP.NET) in modalità Pipeline gestita.
- 500.24: non è possibile effettuare la configurazione di un cambio di identità (per ASP.NET) in modalità gestita Pipeline.
- 500.50: durante l’elaborazione del messaggio RQ_BEGIN_REQUEST, è sorto un errore durante il procedimento di riscrittura.
- 500.51: durante l’elaborazione del messaggio GL_PRE_BEGIN_REQUEST, è sorto un errore durante il procedimento di riscrittura.
- 500.52: durante l’elaborazione del messaggio RQ_SEND_RESPONSE, è sorto un errore durante il procedimento di riscrittura.
- 500.53: durante l’elaborazione del messaggio RQ_RELEASE _REQUEST_STATE, è sorto un errore durante il procedimento di riscrittura.
- 500.100: si è generato un errore all’interno dell’engine ASP.
Quali cause portano all’errore 500?
L’Internal Server Error può verificarsi durante l’elaborazione della richiesta tramite il web server. Il codice di stato generico comprende tutto ciò che può accadere inaspettatamente e che può quindi anche impedire la visualizzazione di un sito web. Probabilmente l’errore di server 500 si è presentato perché durante la configurazione del web server si è verificato un malfunzionamento. Le tipiche fonti di errore del codice di stato 500 sono svariate:
- Errore di permessi: i permessi dei file e delle cartelle principali non sono stati stabiliti correttamente.
- Timeout del PHP: lo script tenta di attingere a una risorsa esterna e si imbatte così in un timeout.
- Codice errato all’interno del file .htaccess: la struttura di un file .htaccess è sbagliata.
- Errore di sintassi o del codice negli script CGI/Perl: in alcuni casi sono gli script a essere errati. In particolare 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 Management System la causa di un avviso di errore può anche essere l’installazione di un’estensione difettosa o incompatibile: i plug-in e i temi – soprattutto di provider terzi – possono compromettere l’intero sito web.
Come i webmaster possono correggere il 500 Internal Server Error
Se i visitatori del vostro sito web al posto dei contenuti visualizzano solamente l’errore 500 interno del server, come gestori dovreste approcciare il problema direttamente. Difatti non solo i visitatori del vostro sito web si sentono intimiditi, ma Google potrebbe penalizzarvi e posizionarvi più in basso nel ranking. Prima di correre ai ripari, verificate innanzitutto 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 utilizzate un server Linux la raccolta delle notifiche di errore dovrebbe trovarsi nel percorso /var/log/httpd/error_log. Tuttavia conviene ricaricare di nuovo la pagina per riprodurre l’errore HTTP 500 ed osservare la generazione del file di log. In questo modo siete in grado di trovare la fonte di errore abbastanza in fretta. Chiedetevi anche quali siano le modifiche che avete applicato di recente. In molti casi sono i plug-in programmati in modo errato oppure direttamente incompatibili a provocare le notifiche di errore.
Causa di errore n. 2: processo di assegnazione dei permessi
Tuttavia l’errore può comparire anche nel caso in cui non abbiate stabilito correttamente i permessi in relazione a file importanti. In generale esistono tre tipi di permessi:
- Lettura (r per read)
- Scrittura (w per write)
- Esecuzione (x per execute)
Questi permessi possono essere assegnati a tre diverse tipologie di utente:
- Proprietario del file
- Gruppo di utenti
- Tutti gli altri
I permessi vengono indicati o per mezzo delle abbreviazioni r, w e x oppure con i rispettivi valori numerici: 4 per “Lettura”, 2 per “Scrittura” e 1 per “Esecuzione”. Per ogni tipologia di utente vengono sommati e indicati in successione uno dopo l’altro: rwxr-xr-x (rwx per il proprietario, r-x per il gruppo e r-x per tutti gli altri) oppure 755, la configurazione che dovrebbe essere l’impostazione standard. Se l’assegnazione di permessi viene stabilita diversamente può verificarsi un errore. Potete però modificarlo con un comando:
chmod 755 nome del file
Ma se questa modifica non dovesse risolvere il problema, potete anche provare a rilasciare tutti i permessi ad ogni gruppo:
chmod 777 nome del file
Utilizzate questa impostazione solamente per localizzare il problema. In questo modo avete dato il permesso a qualsiasi utente di riscrivere il file, cosa che naturalmente rappresenta 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 assegnazione dei permessi a generare la notifica di errore, allora accertatevi che i vostri script funzionino correttamente. A volte, infatti, possono verificarsi degli errori perché i file degli script sono stati traferiti, rinominati 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: formattazione ASCII o ANSI
Un errore altrettanto frequente è la formattazione sbagliata del file .htaccess: questa deve infatti essere creata in formato ASCII o ANSI, non in Unicode. Per questo motivo è raccomandabile scrivere il file con un editor di testo come ad esempio Notepad, Notepad++ o Sublime Text, e non con un programma di elaborazione di testi come Microsoft Word. Per testare se sia il file ad essere responsabile per l’errore, potete rinominarlo temporaneamente e ricaricare di nuovo la pagina. Il server non attingerà ad .htaccess durante il caricamento 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’interruzione della connessione a una fonte esterna. Se gli script PHP del vostro sito web sono impostati in modo tale da attingere a risorse di altri server, eventualmente la risorsa non è più disponibile oppure la comunicazione al server è disturbata per un qualsiasi motivo. Una possibilità di escludere questa fonte di errore è naturalmente 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 efficiente error handling, così da rintracciare con maggiore precisione 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 sovraccarica, potete servirvi del Memory Limit per verificare quanta percentuale di memoria venga impegnata durante un processo. Se venisse richiesta più RAM di quanto non ce ne sia a disposizione, allora la conseguenza potrebbe essere un Internal Server Error. Come soluzione provvisoria potreste aumentare il limite della memoria. A questo scopo aggiungete 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 considerazione che il vostro servizio di hosting può garantirvi solamente un certo limite di script PHP nell’ambito dell’offerta che avete acquistato. 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 passeggera: non appena la vostra pagina torna a funzionare dovreste ricercare il motivo per la richiesta di uno spazio sulla RAM più elevato. Con grande probabilità l’errore si troverà all’interno del codice del vostro sito.
Causa di errore n. 6: stato del server
Se l’errore dovesse continuare a persistere controllate lo stato del server: quando sorge un problema molti provider di servizi di hosting pubblicano lo stato dei loro server attraverso una pagina di stato oppure informano gli utenti sui social media. Nel caso fosse stata data notizia di malfunzionamenti al server dovete armarvi di pazienza: difatti non vi resta che attendere che il team di tecnici del provider abbia provveduto a riparare l’errore.
Anche IONOS è provvista di una pagina di stato, sulla quale i clienti dell’offerta di hosting vengono informati riguardo a eventuali malfunzionamenti del servizio.
Causa di errore n. 7: ignota
Per concludere se non fossero state pubblicate informazioni riguardo a eventuali malfunzionamenti, allora vi conviene ricorrere al supporto. Se infatti non siete riusciti a raggiungere una soluzione con nessuno dei metodi proposti, allora è una buona idea contattare il vostro servizio di hosting. Comunicate quali provvedimenti avete preso finora così sapranno presto esservi d’aiuto.
Come deve reagire chi naviga se si presenta un errore HTTP 500?
Di base come visitatori 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 configurazione errata. Ciò significa che non è presente alcun errore nelle impostazioni del vostro computer o della connessione 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 accidentalmente aperto dei contenuti in un momento svantaggioso per il web server: se siete capitati proprio in una situazione del genere e il servizio si sta avviando di nuovo, vi apparirà il messaggio di errore anche se tutto funziona correttamente.
Se vi imbattete in una notifica di errore durante un processo di ordine non ricaricate di nuovo la pagina. Del resto non potete sapere il momento preciso in cui si è presentato l’errore. Può essere che sia fallito solamente il processo di caricamento della pagina di conferma ma che il vostro ordine sia già stato registrato dal sistema. In questo caso un refresh potrebbe implicare un ordine doppio.
Soluzione n. 2: svuotare la cache
È altrettanto possibile che il server sia stato messo sotto pressione da un improvviso aumento delle richieste di apertura del sito web. In teoria anche questo problema dovrebbe solitamente risolversi nel giro di pochi secondi, a meno che il sito web non sia permanentemente sovraccarico. Se ricevete la notifica di errore anche dopo aver effettuato il refresh della pagina dovreste innanzitutto cancellare la cache del vostro browser. Eventualmente poi il browser non caricherà la versione attuale della pagina, ma attingerà alla sua memoria interna. Provate quindi ad aprire nuovamente il sito web una volta che avete svuotato la cache.
Soluzione n. 3: attingere alla cache di Google
Se continuate ancora a vedere il messaggio “500 Internal Server Error” prima di rinunciare del tutto e rassegnarvi ad attendere, date l’ultima possibilità a un trucchetto che potrebbe aiutarvi ad accedere comunque ai contenuti del sito web. Se infatti non è fondamentale che abbiate a disposizione la versione più aggiornata 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 funzionante, 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 funzionante della pagina vi tocca scavare molto nel passato, allora può esservi d’aiuto la biblioteca digitale dell’Internet Archive: Wayback Machine. Qui si trovano in parte versioni di siti web vecchie persino di decenni.
Soluzione n. 4: contattare il webmaster
Infine se il sito web che volete aprire continua a non essere raggiungibile per un periodo di tempo più lungo del normale, allora potete naturalmente anche contattare 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 sicuramente felici di ricevere un aggiornamento.