Errori del server
Errore 500 del server interno
Un errore 500 del server interno indica che il codice del tuo sito ha riscontrato un problema dal quale non è riuscito a riprendersi. Nei siti WordPress, si tratta solitamente di un errore fatale PHP causato da un plugin, un tema o un codice personalizzato, oppure da un processo che ha esaurito la memoria. Poiché l’errore si verifica all’interno del tuo sito, viene quasi sempre registrato nei tuoi log.
Controlla il tuo log degli errori
- Prendi nota dell’ora in cui si è verificato l’errore e dell’URL.
- In MyKinsta, apri il file error.log del tuo sito e cerca le voci relative allo stesso orario. Gli errori fatali includono
Errore fatale PHPe solitamente indicano il nome del file e la riga in cui si è verificato il problema. - Il percorso del file di solito indica la causa. Un percorso all’interno di
wp-content/plugins/owp-content/themes/rimanda a quel plugin o tema.
Se nel file error.log non sono presenti voci corrispondenti, verifica se il debug di WordPress è attivato in MyKinsta. Quando è attivo, gli errori vengono registrati nel log di debug anziché nel file error.log.
Cause comuni e soluzioni
- Errori relativi a plugin o temi: disattiva il plugin o il tema indicato nell’errore. Se non riesci ad accedere alla dashboard di WordPress, rinomina la cartella del plugin in File Manager, tramite SFTP oppure utilizza WP-CLI. Se l’errore è iniziato dopo un aggiornamento, ripristina un backup o annulla l’aggiornamento, quindi invia l’errore allo sviluppatore.
- Errori relativi al limite di memoria (
Allowed memory size ... exhausted): un plugin o un processo ha utilizzato più memoria di quella consentita da PHP, che per impostazione predefinita è di 256 MB per thread PHP. Per verificare con quale frequenza ciò si verifica, controlla il grafico Limite di memoria PHP raggiunto in MyKinsta alla voce Siti > nome del sito > Statistiche > Prestazioni. Risolvi innanzitutto il problema relativo al plugin o al processo indicato nell’errore, poiché uno script difettoso può consumare una quantità illimitata di memoria. Se il tuo sito necessita effettivamente di più memoria per thread, puoi modificare le impostazioni delle prestazioni PHP in Siti > nome del sito > Informazioni > Prestazioni PHP. Il numero di thread PHP e la memoria per thread vengono impostati insieme, quindi assegnare più memoria a ciascun thread potrebbe comportare l’esecuzione di un numero inferiore di thread; consulta Riduci e ottimizza l’utilizzo dei thread PHP. - Errori di limite di tempo (
Maximum execution time ... exceeded): Questi errori derivano da processi che non passano attraverso un browser, come i comandi WP-CLI o i cron job, oppure da un plugin che imposta un proprio limite di tempo inferiore. Verifica quale comando, attività pianificata o plugin fosse in esecuzione in quel momento. - Incompatibilità della versione PHP: Se gli errori sono iniziati dopo un cambio di versione di PHP, è possibile che un plugin o un tema non supporti la nuova versione. Aggiornalo o torna temporaneamente alla versione precedente.
Quando contattare il supporto
Se non riesci a individuare la causa o se gli errori persistono dopo aver provato questi passaggi, contatta il supporto indicando l’URL, l’ora e il fuso orario in cui si è verificato l’errore, nonché eventuali voci correlate nel file error.log.
Errore 502 Bad Gateway
Un errore 502 Bad Gateway indica che il server web non è riuscito a ottenere una risposta valida da PHP, la parte del server del tuo sito che esegue WordPress. Di solito, ciò significa che PHP si è bloccato durante la gestione di una richiesta o non era in esecuzione. Questi errori si verificano sul server del tuo sito, quindi vengono registrati nei log del tuo sito.
Gli errori tra Cloudflare e il tuo sito hanno un aspetto diverso. I visitatori vedono una pagina di errore con il marchio Cloudflare e un Ray ID, e questi errori non vengono mai registrati nei log del tuo sito.
Verifica se l’errore ha interessato il tuo sito
- Prendi nota dell’ora in cui si è verificato l’errore.
- Se hai riscontrato l’errore tu stesso, controlla quale pagina è stata visualizzata:
- Una pagina bianca con 502 Bad Gateway e la scritta “nginx” sotto è stata generata dal server del tuo sito. Procedi con il passaggio successivo.
- Una pagina di errore con il marchio Cloudflare e un Ray ID si è verificata prima che la richiesta raggiungesse il tuo sito. Contatta l’assistenza.
- In MyKinsta, apri il file access.log del tuo sito e cerca
502in quel lasso di tempo. - Se trovi una voce corrispondente, l’errore proviene dal server del tuo sito. Controlla error.log per le voci relative allo stesso orario,
connect() to unix:... php-fpm.sock failedindica che PHP non accettava richieste; unPHP fatal errorindica il nome del file che ha causato il crash. - Se non c’è alcuna voce corrispondente, l’errore si è verificato prima che la richiesta raggiungesse il tuo sito. Se utilizzi un CDN di terze parti, consulta quanto riportato di seguito; altrimenti, contatta l’assistenza.
Se l’errore proviene dal server del tuo sito
- PHP si è arrestato o non risponde: Se error.log mostra
connect() to unix:... php-fpm.sock non ha funzionato, riavvia PHP in MyKinsta. Se il problema persiste, controlla nel file error.log se sono presenti errori fatali immediatamente prima dei 502. - Plugin e temi: Un plugin o un tema può causare il crash di un processo PHP durante l’elaborazione di una richiesta. Se il file error.log riporta un errore fatale o un crash nel momento in cui si verifica l’errore 502, disattiva il plugin o il tema in questione, oppure prova a disattivare tutti i plugin e a passare a un tema predefinito.
Se utilizzi un CDN o un proxy di terze parti
Se il tuo sito utilizza un CDN o un proxy di terze parti oltre all’integrazione di Kinsta con Cloudflare, bypassalo temporaneamente. Se gli errori 502 cessano, contatta il tuo provider CDN per verificare le impostazioni o le regole del firewall.
Quando contattare il supporto
Se gli errori continuano a verificarsi, non c’è alcun errore 502 corrispondente nel tuo access.log o nulla nei tuoi log che li spieghi, contatta il supporto indicando l’URL, l’ora e il fuso orario dell’errore, nonché la frequenza con cui si verifica. Se i visitatori hanno visualizzato una pagina di errore di Cloudflare, includi il Ray ID riportato su di essa.
Errore 504 Gateway Timeout
Un errore 504 Gateway Timeout indica che una richiesta al tuo sito ha impiegato troppo tempo per essere completata. Le richieste al tuo sito possono durare fino a 180 secondi. Se una richiesta non è stata completata entro tale limite, il server web smette di attendere e restituisce un codice di errore 504; i visitatori vedranno una semplice pagina bianca con la scritta 504 Gateway Time-out e “nginx” sotto. Occasionalmente, viene raggiunto prima il limite di 180 secondi imposto da Cloudflare e i visitatori vedranno invece una pagina di Cloudflare con il messaggio 524: Si è verificato un timeout. Entrambi gli errori indicano la stessa cosa: la richiesta ha richiesto troppo tempo.
I timeout si verificano solitamente perché una singola richiesta sta richiedendo troppe risorse, oppure perché arrivano molte richieste contemporaneamente e alcune devono attendere in coda fino allo scadere del tempo a disposizione.
Individua la richiesta lenta
I timeout vengono registrati nei log del tuo sito, quindi puoi individuare la richiesta che ha richiesto troppo tempo:
- Prendi nota dell’ora in cui si è verificato l’errore.
- In MyKinsta, apri l’access.log del tuo sito e cerca
504intorno a quell’ora. Una richiesta scaduta mostra unupstream_response_time(l’ultimo valore di ogni riga) di circa 180 secondi. Presta attenzione agli URL. - Il file error.log del tuo sito contiene una voce corrispondente per ciascuna di esse:
upstream timed out ... while reading response header from upstream, seguita dall’URL della richiesta. - Se invece i visitatori hanno visualizzato una pagina Cloudflare 524, cerca nel file access.log le voci con codice di stato
499e un tempo di richiesta di circa 180 secondi. - Se non ci sono voci corrispondenti, il timeout si è verificato prima che la richiesta raggiungesse il tuo sito. Se utilizzi un CDN di terze parti, consulta quanto riportato di seguito; altrimenti, contatta l’assistenza.
Se una richiesta o un’azione è lenta
Se le voci lente puntano tutte allo stesso URL o alla stessa azione:
- Importazioni, esportazioni e operazioni in blocco: Eseguirle direttamente sul server con WP-CLI o uno script. Queste operazioni non sono soggette al limite di 180 secondi.
- Caricamenti: I caricamenti di solito vanno in timeout a causa dell’elaborazione che avviene dopo l’arrivo del file: ridimensionamento o ottimizzazione delle immagini, oppure plugin che copiano i file su servizi di archiviazione cloud come Amazon S3 o Google Cloud Storage. Controlla le impostazioni del plugin che esegue tali operazioni oppure, se supporta questa funzionalità, imposta l’elaborazione in background.
- Plugin e temi: Un plugin o un tema potrebbe eseguire codice lento o attendere un servizio esterno lento. Utilizza lo strumento APM di Kinsta per individuare il processo lento, oppure disattiva i plugin uno alla volta.
- Database: Le query al database lente o bloccate possono impedire il completamento di una richiesta.
Se molte richieste sono lente contemporaneamente
Se le voci lente sono distribuite su molti URL, il tuo sito potrebbe ricevere più richieste di quante i suoi thread PHP siano in grado di gestire. Le richieste attendono in coda che si liberi un thread e qualsiasi richiesta che attenda più di 180 secondi va in timeout. Una volta che ciò accade, quasi tutte le richieste possono andare in timeout, poiché PHP continua a elaborare le richieste per le quali ai visitatori è già stato inviato un errore.
- Controlla il report Visite in Statistiche per individuare picchi di traffico e verifica kinsta-cache-perf.log per verificare se c’è un numero elevato di richieste non memorizzate nella cache.
- Se il traffico è legittimo e regolare, il tuo sito potrebbe aver bisogno di più thread PHP. Puoi aumentare i thread PHP all’interno di Prestazioni PHP; tuttavia, aumentare il numero di thread riduce la quantità di memoria per thread se non aumenti anche il pool di memoria PHP. Per saperne di più, leggi Ridurre e ottimizzare l’utilizzo dei thread PHP.
- Per brevi picchi di traffico previsti, come una vendita o un lancio, un servizio di accodamento come Queue-it, Queue-Fair o CrowdHandler può limitare il numero di visitatori che accedono contemporaneamente al tuo sito.
Se utilizzi un CDN o un proxy di terze parti
Alcuni CDN hanno timeout più brevi rispetto a Kinsta. Bypassa temporaneamente il CDN; se gli errori cessano, controlla le impostazioni di timeout o contatta il tuo provider CDN.
Quando contattare il supporto
Se gli errori continuano a verificarsi e non riesci a individuare la richiesta lenta, contatta il supporto indicando l’URL, l’ora e il fuso orario in cui si è verificato l’errore, nonché la frequenza con cui si verifica.