Il temuto errore 500 internal server error sembra sempre arrivare nel momento meno opportuno. All’improvviso vi ritrovate lì a cercare di capire come rimettere online il vostro sito. Fidatevi, ci siamo trovati tutti in questa situazione.

Altri errori del genere in cui potreste esservi imbattuti sono il terribile errore nello stabilire una connessione al database e il tanto temuto schermo bianco della morte. Dal momento in cui il vostro sito va giù, cominciate a perdere visitatori e clienti. Per non parlare del fatto che tutto ciò non offre una bella immagine del vostro brand.

Oggi analizzeremo l’errore 500 internal server error e vi illustreremo alcuni metodi per ripristinare rapidamente il vostro sito. Vediamo, quindi, qual è la causa di questo errore e cosa si può fare per evitare che vi si ripresenti in futuro.

Date un’occhiata alla nostra guida definitiva per risolvere l’errore 500 Internal Server

Che cos’è un errore 500 Internal Server Error?

L’Internet Engineering Task Force (IETF) definisce l’errore 500 Internal Server Error in questo modo:

Il codice di stato 500 (Internal Server Error) indica che il server ha incontrato una condizione inaspettata che gli ha impedito di soddisfare la richiesta.

Quando visitate un sito web, il browser invia una richiesta al server su cui è ospitato il sito. Il server prende questa richiesta, la elabora e restituisce le risorse richieste (PHP, HTML, CSS, ecc.) insieme ad un’intestazione HTTP. L’intestazione HTTP contiene anche il cosiddetto codice di stato HTTP. Un codice di stato fornisce informazioni sullo stato della richiesta. Potrebbe essere un codice di stato 200, che significa “È tutto OK”, o un codice di stato 500, che significa che qualcosa è andato storto.

Esistono numerosi codici di stato di errore 500 (500, 501, 502, 503, 504, ecc.) ed ognuno ha un significato diverso. In questo caso, un errore 500 internal server error indica che il server ha rilevato una condizione imprevista che gli ha impedito di soddisfare la richiesta (RFC 7231, sezione 6.6.1).

Codice di errore HTTP Error 500
Tipo di errore Codice errore
Variazioni dell’errore “500 Internal Server Error”
“HTTP 500”
“Internal Server Error”
“HTTP 500 – Internal Server Error”
“500 Error”
“HTTP Error 500”
“500 – Internal Server Error”
“500 Internal Server Error. Sorry something went wrong.” (“Ci dispiace ma qualcosa è andato storto”)
“500. That’s an error. There was an error. Please try again later. That’s all we know.” (“500. C’è stato un errore. Riprova più tardi. È tutto quello che sappiamo”)
“The website cannot display the page – HTTP 500” (“Il sito web non può visualizzare la pagina – HTTP 500”)
“Is currently unable to handle this request. HTTP ERROR 500.” (“Al momento non è in grado di gestire questa richiesta”)
Cause dell’errore Cache del browser.
File .htaccess corrotto e limite di memoria PHP.
Problemi con plugin e temi di terze parti.
File corrotti nell’installazione di WordPress.
Problemi con il server del database.

Varianti dell’errore 500 Internal Server Error

Errore 500 Internal server error in WordPress
Errore 500 Internal server error in WordPressData la diversità di server web, sistemi operativi e browser, un errore 500 internal server error può presentarsi in diversi modi, ma tutti dicono più o meno la stessa cosa. Di seguito sono riportate solo alcune delle diverse varianti che potreste vedere sul web:

  • “500 Internal Server Error”
  • “HTTP 500”
  • “Internal Server Error”
  • “HTTP 500 – Internal Server Error”
  • “500 Error”
  • “HTTP Error 500”
  • “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.”
  • “Is currently unable to handle this request. HTTP ERROR 500.”

Con uno di questi messaggi, potreste trovare anche il seguente testo:

The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.

Errore interno del server
Errore interno del server

Altre volte, potreste semplicemente vedere una schermata vuota. In browser come Firefox e Safari questo in realtà è abbastanza frequente con gli errori 500 internal server error.

500 internal server error in Firefox
500 internal server error in Firefox

I brand più grandi potrebbero anche avere messaggi di errore 500 internal server error personalizzati, come questo di Airbnb.

Errore 500 internal server error di Airbnb
Errore 500 internal server error di Airbnb

Ecco un altro esempio creativo di errore 500 del server di readme.

Errore 500 internal server error di readme
Errore 500 internal server error di readme

Persino YouTube non è al riparo dagli errori 500 internal server error.

Errore 500 internal server error di YouTube
Errore 500 internal server error di YouTube

I server IIS 7.0 (Windows) o superiore hanno codici di stato HTTP aggiuntivi per indicare in modo più preciso la causa dell’errore 500:

  • 500.0 – Si è verificato un errore nel modulo o nell’ISAPI.
  • 500.11 – Arresto dell’applicazione sul server Web.
  • 500.12 – Riavvio dell’applicazione in corso sul server Web.
  • 500.13 – Server Web troppo occupato.
  • 500.15 – Richieste dirette per Global.asax non consentite.
  • 500.19 – Dati di configurazione non validi.
  • 500.21 – Modulo non riconosciuto.
  • 500.22 – Una configurazione ASP.NET httpModules non è valida in modalità pipeline gestita.
  • 500.23 – Una configurazione ASP.NET httpHandlers non è valida in modalità pipeline gestita.
  • 500.24 – Una configurazione di rappresentazione ASP.NET non è valida in modalità pipeline gestita.
  • 500.50 – Si è verificato un errore di riscrittura durante la gestione di notifica RQ_BEGIN_REQUEST. Si è verificato un errore nell’esecuzione delle regole di configurazione o in arrivo.
  • Nota Qui viene letta la configurazione delle regole distribuite, sia per le connessioni in entrata che per le connessioni in uscita.
  • 500.51 – Si è verificato un errore di riscrittura durante la gestione di notifica GL_PRE_BEGIN_REQUEST. Si è verificato un errore di esecuzione di configurazione o di regola globale.
  • Nota Qui viene letta la configurazione delle regole globali.
  • 500.52 – Si è verificato un errore di riscrittura durante la gestione di notifica RQ_SEND_RESPONSE. Si è verificata un’esecuzione della regola connessioni in uscita.
  • 500.53 – Si è verificato un errore di riscrittura durante la gestione di notifica RQ_RELEASE_REQUEST_STATE. Si è verificato un errore dell’esecuzione della regola connessioni in uscita. La regola viene configurata per essere eseguita prima che la cache dell’utente output venga aggiornata.
  • 500.100 – Errore ASP interno.

Gli errori 500 influenzano la SEO

A differenza degli errori 503, che vengono utilizzati per la modalità di manutenzione di WordPress e dicono a Google di ricontrollare in un secondo momento, un errore 500 può avere un impatto negativo sulla SEO se non viene risolto immediatamente.

Se il vostro sito è giù solo per 10 minuti, e viene ripetutamente sottoposto a scansione, il crawler si limiterà a scaricare la pagina dalla cache perché Google potrebbe non avere il tempo di eseguire nuovamente la scansione prima di eseguire il backup. In questo caso, nessun problema.

Tuttavia, se il sito resta giù per un lungo periodo di tempo, diciamo per più di 6 ore, Google potrebbe vedere l’errore 500 come un problema a livello di sito che deve essere risolto. Questo potrebbe influire sul vostro ranking. Se pensate che gli errori 500 possano ripetersi, dovreste capire quale sia il motivo per cui si stanno verificando. Potrebbero esservi di aiuto alcune delle soluzioni riportate qui di seguito.

Come risolvere l’errore 500 Internal Server Error

Da dove iniziare per risolvere il problema che causa l’errore 500 internal server error sul vostro sito? A volte potreste anche non sapere nemmeno da dove cominciare. In genere gli errori 500 si verificano sul server stesso, ma nella nostra esperienza questi errori hanno origine da due cause: la prima è l’errore dell’utente (problema lato client) e la seconda è che c’è un problema sul server. Quindi daremo un’occhiata ad entrambe le situazioni.

Ecco un elenco di cause frequenti e di soluzioni disponibili per correggere l’errore 500 internal server error e tornare subito operativi.

1. Provare a ricaricare la pagina

A qualcuno potrebbe sembrare un po’ ovvio, ma una delle cose più semplici e da provare prima quando ci si imbatte in un errore 500 è quella aspettare un minuto o poco più e ricaricare la pagina (F5 o Ctrl + F5). Può darsi che l’host o il server sia semplicemente sovraccarico e il sito torni subito online. Nell’attesa, potete anche provare velocemente un altro browser.

Un’altra cosa da fare è incollare l’indirizzo del sito web in downforeveryoneorjustme.com. Questo sito vi dirà se il sito è down o se è un problema dal vostro lato. Uno strumento come questo controlla il codice di stato HTTP che viene restituito dal server. Se è diverso da un 200 “Everything is OK”, riporterà l’informazione che il sito è giù.

downforeveryoneorjustme
downforeveryoneorjustme

Abbiamo anche notato che a volte ciò può verificarsi immediatamente dopo aver aggiornato un plugin o un tema sul sito. Normalmente avviene su host che non sono configurati correttamente. Quello che succede è che subito dopo l’aggiornamento si verifica un timeout temporaneo. Ma le cose di solito si risolvono da sole in un paio di secondi, quindi tutto ciò che dovete fare è aggiornare la pagina.

2. Cancellare la cache del browser

Cancellare la cache del browser è sempre un’altra delle cose da fare per diagnosticare i problemi prima di passare al debug del sito. Di seguito riportiamo le istruzioni per cancellare la cache nei vari browser:

3. Controllare i log del server

Dovreste anche sfruttare i log degli errori. Se siete clienti di Kinsta, potete vedere facilmente gli errori nel visualizzatore dei log nel cruscotto di MyKinsta. Questo può aiutarvi a restringere rapidamente il campo di ricerca del problema, soprattutto se dovesse essere generato da un plugin presente sul vostro sito.

Controllate i log per gli errori 500 internal server error
Controllate i log per gli errori 500 internal server error

Se il vostro host non dispone di uno strumento di registrazione, potete anche abilitare la modalità di debug di WordPress aggiungendo il seguente codice al vostro file wp-config.php per abilitare la registrazione:

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

I log si trovano in genere nella directory /wp-content. In altri casi, come qui da Kinsta, potrebbe esserci una cartella dedicata chiamata “logs”.

Cartella del registro degli errori di WordPress (SFTP)
Cartella del registro degli errori di WordPress (SFTP)

È possibile anche controllare i file di registro in Apache e NGINX, che normalmente si trovano qui:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log

Se siete clienti di Kinsta, potete anche sfruttare il nostro strumento di analisi per avere una scomposizione del numero totale degli errori 500 e vedere quando e con quale frequenza questi si verificano. Lo strumento di analisi può aiutarvi a risolvere i problemi nel momento stesso in cui si verificano, o di vedere se c’è stato qualcosa che si è risolto da solo.

Scomposizione degli errori 500 - analisi delle risposte
Scomposizione degli errori 500 – analisi delle risposte

Se l’errore 500 è causato da un errore fatale di PHP, potete anche provare a abilitare la segnalazione degli errori PHP. Basta aggiungere il seguente codice al file che genera l’errore. In genere, potete restringere il campo di ricerca del file nella scheda della console di Google Chrome DevTools.

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

Potrebbe essere necessario modificare anche il file php.ini aggiungendo il codice che segue:

display_errors = on

4. Verificare gli errori nella creazione di una connessione al database

Gli errori 500 internal server error possono originare anche da un errore di connessione al database. Questi errori possono essere diversi a seconda del browser utilizzato. Ma tutti genereranno un codice di stato HTTP 500, indipendentemente da quello che viene registrato nei log del server.

Di seguito è riportato un esempio di messaggio di “errore durante la creazione di una connessione al database” nel browser. L’intera pagina è vuota perché non è possibile recuperare dati per eseguire il rendering, dato che la connessione non funziona correttamente. Questo non solo interrompe il front-end del sito, ma impedisce anche di accedere alla bacheca di WordPress.

Esempio di errore durante la creazione di una connessione al database
Esempio di errore durante la creazione di una connessione al database

Qual è dunque il motivo esatto per cui si verifica questo errore? Ecco alcuni dei motivi più comuni.

  • Il problema più frequente è dato da credenziali di accesso al database non corrette. Il vostro sito utilizza informazioni di accesso separate per connettersi al suo database MySQL.
  • Il database di WordPress è corrotto. Con tante parti in continuo cambiamento, con temi, plugin e utenti che cancellano e installano senza sosta, a volte i database vengono danneggiati. Può trattarsi di una singola tabella mancante o danneggiata o di informazioni cancellate accidentalmente.
  • Potreste avere file corrotti nella vostra installazione di WordPress. Questo a volte può accadere anche a causa di hacker.
  • Problemi con il server del database. Molte cose potrebbero andare in errore dal lato dell’host, come un sovraccarico del database causato da un picco di traffico o la mancata risposta per un numero eccessivo di connessioni simultanee. Tutto questo è in realtà abbastanza frequente sugli host condivisi perché utilizzano le stesse risorse per molti utenti sugli stessi server.

Date un’occhiata al nostro post approfondito in cui è spiegato come correggere l’errore durante la creazione di una connessione al database.

5. Controllare temi e plugin

Plugin e temi di terze parti possono facilmente causare errori 500. Ne abbiamo riscontrati di diversi tipi qui su Kinsta, dai plugin di slider ai plugin di rotazione degli annunci. Spesso potreste vedere l’errore subito dopo aver installato qualcosa di nuovo o aver eseguito un aggiornamento. Questo è uno dei motivi per cui consigliamo di utilizzare sempre un ambiente di staging per gli aggiornamenti o almeno di eseguire gli aggiornamenti uno alla volta. In caso contrario, se si verifica un errore 500, ci si trova all’improvviso a dover capire in fretta cosa l’abbia generato.

Un modo per risolvere questo problema è quello di disattivare tutti i plugin. Ricordate che se disattivate un plugin non perdete alcun dato. Se riuscite ancora ad accedere al pannello di amministrazione, potete andare alla pagina dei “Plugin” e selezionare “Disattiva” dal menu delle azioni di gruppo. Questa azione disabiliterà tutti i vostri plugin.

Disattivare tutti i plugin
Disattivare tutti i plugin

Se così risolvete il problema, dovrete trovare il plugin che causa l’errore. Iniziate ad attivarli uno alla volta, ricaricando il sito dopo ogni attivazione. Quando vedrete di nuovo il messaggio di errore 500 internal server error, avrete trovato il colpevole. Potrete quindi contattare lo sviluppatore del plugin per chiedere aiuto o pubblicare un ticket di supporto nella repository di WordPress.

Se non potete accedere all’amministrazione di WordPress, potete entrare con FTP sul vostro server e rinominare la vostra cartella plugins in qualcosa di simile a plugins_old. Quindi controllate di nuovo il vostro sito. Se funziona, dovrete testare i plugin uno alla volta. Rinominate la cartella dei plugin in “plugins” e poi rinominate la cartella di ognuno dei plugin al suo interno, finché non lo individuate. Potreste anche provare prima in un sito di staging.

Rinominare la cartella dei plugin
Rinominare la cartella dei plugin

Assicuratevi sempre che i plugin, i temi e il core di WordPress siano aggiornati e accertatevi di avere una versione di PHP supportata. Se il problema nasce da un conflitto con codice errato di un plugin, potrebbe essere necessario contattare uno sviluppatore WordPress per risolvere il problema.

6. Reinstallare il core di WordPress

A volte i file del core di WordPress possono essere danneggiati, specialmente su siti meno recenti. In realtà è abbastanza semplice caricare di nuovo solo il core di WordPress senza toccare temi o plugin. Al riguardo abbiamo pubblicato una guida approfondita con 5 diversi metodi per reinstallare WordPress. E, naturalmente, assicuratevi di fare un backup prima di procedere. Saltate a una delle sezioni seguenti:

7. Controllare gli errori di autorizzazione

Anche un errore sui permessi su un file o una cartella sul server può causare un errore 500 internal server error. Ecco alcuni consigli che riguardano le autorizzazioni su file e cartelle in WordPress:

  • Tutti i file devono essere 644 (-rw-r-r-) o 640.
  • Tutte le directory dovrebbero essere 755 (drwxr-xr-x) o 750.
  • Nessuna directory dovrebbe mai essere 777, anche la cartella degli upload.
  • Maggiore rigidità: si potrebbe anche impostare il file su 440 o 400 per impedire ad altri utenti sul server di leggerlo.

Per una analisi più approfondita, consultate l’articolo del Codex di WordPress sulla modifica dei permessi sui file.

I permessi sui file possono essere visualizzati con un client FTP (come mostrato qui sotto). Potete anche contattare il team di supporto del vostro host e chiedere loro di eseguire un comando GREP su file e cartelle per assicurarvi che siano configurati correttamente.

Permessi sui file SFTP
Permessi sui file SFTP

8. Aumentare il limite di memoria PHP

Un errore interno del server potrebbe anche essere causato dal raggiungimento del limite di memoria PHP sul server. Potreste provare ad aumentare il limite. Seguite le istruzioni riportate di seguito per modificare il limite in cPanel, Apache, nel vostro file php.ini e nel file wp-config.php.

Aumentare il limite di memoria PHP in cPanel

Se siete su un host che utilizza cPanel, potete facilmente modificare il valore di memory_limit dall’interfaccia utente. Alla voce Software, fate clic su “Seleziona la versione di PHP”.

Selezionare la versione di PHP
Selezionare la versione di PHP

Cliccate poi su “Passa a Opzioni PHP”.

Configurare impostazioni di base PHP INI
Configurare impostazioni di base PHP INI

Potrete quindi fare clic sull’attributo memory_limit e modificarne il valore. Quindi fare clic su “Salva”.

Aumentare il limite di memoria PHP in cPanel
Aumentare il limite di memoria PHP in cPanel

Aumentare il limite di memoria PHP in Apache

Il file .htaccess è uno speciale file nascosto che contiene varie impostazioni utili per modificare il comportamento del server, fino a un livello specifico di directory. Per prima cosa, accedete al vostro sito tramite FTP o SSH, date un’occhiata alla vostra directory principale e vedete se dentro c’è un file .htaccess.

Il file .htaccess
Il file .htaccess

Se lo trovate, potete modificarlo aggiungendo il codice necessario per aumentare il limite di memoria PHP. Molto probabilmente è impostato a 64M o meno: potete provare ad aumentare questo valore.

php_value memory_limit 128M

Aumentare il limite di memoria PHP nel file php.ini

Se la soluzione illustrata sopra non funziona, potreste provare a modificare il vostro file php.ini. Accedete al vostro sito tramite FTP o SSH, andate alla directory principale del vostro sito e aprite o create un file php.ini.

Il file php.ini
Il file php.ini

Se il file c’e già, cercate le tre impostazioni e modificatele se necessario. Se avete appena creato il file, o non trovate le impostazioni da nessuna parte, potete incollare il codice che segue. Naturalmente potrete modificare i valori in base alle vostre esigenze.

memory_limit = 128M

Alcuni host condivisi potrebbero anche richiedere di aggiungere la direttiva suPHP nel file .htaccess affinché le impostazioni del file php.ini descritte sopra funzionino correttamente. A questo scopo, modificate il vostro file .htaccess, anche questo presente nella root del sito, e aggiungete il seguente codice nella parte superiore del file:

<IfModule mod_suphp.c> 
suPHP_ConfigPath /home/yourusername/public_html
</IfModule>

Se questo non risolve il vostro problema, potrebbe essere che il vostro host abbia bloccato le impostazioni globali e invece sia configurato in modo da utilizzare i file .user.ini. Per modificare il vostro file .user.ini, accedete al vostro sito tramite FTP o SSH, andate alla directory root e aprite o create un file .user.ini. Incollate, quindi, il seguente codice:

memory_limit = 128M

Aumentare il limite di memoria PHP in wp-config.php

L’ultima soluzione non è la nostra preferita, ma se tutto il resto dovesse fallire, potete comunque provarla. Innanzitutto, accedete al vostro sito tramite FTP o SSH e individuate il vostro file wp-config.php, che di solito si trova nella root del sito.

Il file wp-config.php
Il file wp-config.php

Aggiungete il seguente codice all’inizio del file wp-config.php:

define('WP_MEMORY_LIMIT', '128M');

Potete anche chiedere al vostro host se avete problemi di limiti di memoria. Noi di Kinsta utilizziamo strumento APM di Kinsta e altri strumenti per la diagnosi e risoluzione dei problemi per aiutare i nostri clienti a individuare i plugin, le query o gli script che potrebbero esaurire il limite. Potete anche usare la vostra chiave New Relic personalizzata dalla vostra licenza.

Debugging con New Relic
Debugging con New Relic

9. Correggere il file .htaccess

Kinsta utilizza solo Nginx, ma se siete con un host che usa Apache, potrebbe succedere che il vostro file .htaccess abbia un problema o sia stato danneggiato. Seguite i passaggi qui sotto per creare un nuovo file .htaccess da zero.

Innanzitutto, accedete al vostro sito tramite FTP o SSH e rinominate il file .htaccess in .htaccess_old.

Rinominare il file .htaccess
Rinominare il file .htaccess

Normalmente, per ricreare questo file basta semplicemente salvare di nuovo i vostri permalink in WordPress. Tuttavia, se vi trovate nel mezzo di un errore 500 internal server error, probabilmente non potrete accedere al pannello di amministrazione di WordPress, quindi questa non sarà una soluzione praticabile. Pertanto, potreste creare un nuovo file .htaccess e inserire i contenuti che seguono, quindi caricarlo sul server.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Fate riferimento al Codex di WordPress per altri esempi, come generare un file .htaccess predefinito per un’istallazione multisite.

10. Correggere gli errori di coding o di sintassi nello script CGI/Perl

Errori 500 causati da errori in CGI e Perl sono molto meno comuni di quanto non fossero in passato. Ma meritano comunque un accenno, specialmente per chi utilizza cPanel, dove sono ancora in uso molti script CGI ad un clic. Come dice AEM su Stack Overflow:

CGI è stato sostituito da una vasta gamma di tecnologie di programmazione web, tra cui PHP, varie estensioni di Apache come mod_perl, vari gusti di Java e framework tra cui Java EE, Struts, Spring, ecc. Framework basati su Python come Django, Ruby on Rails e molti altri framework Ruby, oltre a varie tecnologie Microsoft.

Ecco alcuni suggerimenti utili quando si lavora con gli script CGI:

  • Durante la modifica, utilizzate sempre un editor di testo piano, come Atom, Sublime o Notepad++. Questo assicura che rimangano in formato ASCII.
  • Assicuratevi di assegnare a script e directory CGI le autorizzazioni corrette chmod 755.
  • Caricate gli script CGI in modalità ASCII (che potete selezionare nel vostro editor FTP) nella directory cgi-bin sul vostro server.
  • Accertatevi che i moduli Perl necessari per lo script siano installati e supportati.

11. Verificare i problemi del server con l’host

Infine, dato che si possono verificare anche errori 500 dovuti al timeout di PHP o ai fatal error di PHP causati da plugin di terze parti, potete sempre chiedere al vostro host di fare una verifica. A volte questi errori possono essere difficili da risolvere senza l’aiuto di un esperto. Ecco alcuni esempi di errori frequenti che attivano codici di stato HTTP 500 sul server che potrebbero procurarvi dei grattacapi.

PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysql_error()...
PHP message: PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/folder/web/shared/content/plugins/plugin/functions.php:525

Qui da Kinsta monitoriamo tutti i siti dei nostri clienti e mandiamo automaticamente una notifica quando si verifica questo tipo di errore. Questo ci consente di essere proattivi e iniziare a lavorare per risolvere il problema immediatamente. Utilizziamo inoltre host gestiti LXD e container software LXC orchestrati per ciascun sito. Ciò significa che ogni sito è ospitato in un proprio container isolato, dotato di tutte le risorse software necessarie per l’esecuzione (Linux, Nginx, PHP, MySQL). Le risorse sono private al 100% e non sono condivise con nessun altro sito, nemmeno tra i vostri stessi siti.

I timeout PHP possono verificarsi anche a causa della mancanza di PHP worker, sebbene in genere questi causino errori 504, non errori 500. I PHP worker determinano il numero di richieste simultanee che il vostro sito può gestire in un dato momento. Per dirla in modo semplice, ogni richiesta non presente nella cache è gestita da un PHP Worker.

Quando i PHP worker di un sito sono già impegnati, iniziano a creare una coda. Una volta raggiunto il limite di PHP worker, la coda inizia a far uscire le richieste più vecchie che potrebbero generare errori 500 o richieste incomplete. Leggete anche il nostro articolo approfondito sui PHP worker.

Monitorare il proprio sito

Se siete preoccupati che si verifichi ancora questo tipo di errori sul vostro sito, potete anche utilizzare uno strumento come updown.io per monitorare e inviare immediatamente una notifica nel caso dovesse succedere. Il servizio invia periodicamente una richiesta HEAD HTTP all’URL di vostra scelta. Potete semplicemente usare la vostra homepage. Lo strumento vi permette di impostare frequenze di controllo di:

  • 15 secondi
  • 30 secondi
  • 1 minuto
  • 2 minuti
  • 5 minuti
  • 10 minuti

Vi sarà inviata un’email se e quando il vostro sito va giù. Ecco un esempio.

Notifica email degli errori 500
Notifica email degli errori 500

Ciò può essere utile soprattutto se state provando ad eseguire il debug di un plugin difettoso o di un host condiviso, che tende a sovraffollare i propri server. Questo può darvi la prova di quanto spesso il vostro sito potrebbe effettivamente andar giù (anche nel mezzo della notte).

Ecco perché raccomandiamo sempre di scegliere un host WordPress gestito che faccia anche da host di applicazioni e database (come Kinsta).

Date un’occhiata al nostro articolo che esplora i 9 motivi principali per scegliere un hosting WordPress gestito.

Riepilogo

Gli errori 500 internal server error sono sempre irritanti, ma ci auguriamo che ora abbiate gli strumenti necessari per risolverli e ripristinare rapidamente il funzionamento del vostro sito. Ricordate, in genere questo tipo di errori è causato da plugin di terze parti, errori fatali di PHP, problemi di connessione al database, problemi con il vostro file .htaccess o da limiti di memoria PHP, e qualche volta anche da timeout PHP.

Abbiamo dimenticato qualcosa? Forse avete altri consigli per risolvere gli errori 500 internal server error. Se è così, scriveteci due righe nei commenti qui sotto.

Brian Jackson

Brian ha una grande passione per WordPress, lo usa da più di dieci anni e sviluppa anche un paio di plugin premium. Brian ama i blog, i film e le escursioni. Entra in contatto con Brian su Twitter.