1,208 26/03/2026 07/04/2026 7 min

Perché compare l’errore 500

L’errore 500 indica quasi sempre un problema lato server o applicazione, non un semplice errore del browser. Su hosting condiviso, VPS o server gestiti, le cause più frequenti sono: file .htaccess corrotto, limiti PHP superati, plugin o tema WordPress in conflitto, permessi errati, risorse esaurite, errori di sintassi in un file di configurazione o, più raramente, un problema del web server o del database.

La priorità non è “provare a caso”, ma capire quale componente sta fallendo. In molti casi l’errore 500 si risolve senza interventi invasivi, purché si parta dai controlli giusti e si faccia un backup prima di modificare qualcosa.

Controlli immediati da fare subito

  1. Verifica se il problema è globale o limitato a una pagina
    Apri il sito in una finestra privata e prova sia la homepage sia una pagina interna. Se l’errore 500 compare solo in alcune URL, la causa è spesso localizzata: plugin, regole rewrite, script specifico o permessi su un file.
  2. Controlla i log errori
    È il controllo più utile. Cerca il log errori del web server o di PHP nel pannello hosting, oppure nei file del sito. Un messaggio come PHP Fatal error, Allowed memory size exhausted, Premature end of script headers o Permission denied punta già alla causa.
  3. Valuta se il sito è WordPress o altro CMS
    Se usi WordPress, l’errore 500 è spesso legato a plugin, tema, cache o file di configurazione. Su altri CMS il percorso è simile, ma cambiano i file da controllare e le estensioni coinvolte.

Diagnosi probabile

La causa più probabile, in un hosting tipico, è una di queste:

  • File .htaccess danneggiato, con regole sbagliate o incompatibili.
  • Plugin o tema WordPress in errore, spesso dopo aggiornamenti incompleti.
  • Limite PHP insufficiente, come memoria o timeout troppo bassi per il carico reale.
  • Permessi o ownership errati su file e cartelle.
  • Errore nel database o connessione intermittente al DB.
  • Risorse esaurite su hosting condiviso, ad esempio CPU, RAM o processi contemporanei.

In assenza di log, la diagnosi resta incompleta. Per questo il primo obiettivo è trovare l’errore preciso, non cambiare impostazioni a caso.

Percorso consigliato su cPanel, Plesk e pannelli hosting

  1. Apri la sezione log
    In cPanel cerca Errors o Error Log. In Plesk vai su Websites & Domains e poi Logs. In altri pannelli cerca Log errori, Apache/Nginx logs o PHP log.
  2. Cerca l’ultima ora di eventi
    Apri il sito che genera il problema e rileggi subito il log. L’esito utile è un messaggio che indichi file, riga e motivo dell’errore. Se vedi solo righe generiche, passa al controllo dei file del sito.
  3. Controlla il file manager
    Verifica la presenza di .htaccess, la cartella wp-content se è WordPress, e i permessi di file e directory. Un permesso anomalo o un file corrotto è spesso sufficiente a generare un 500.

Soluzione consigliata passo-passo

  1. Fai un backup minimo prima di modificare
    Salva una copia di .htaccess, del file di configurazione del CMS e, se possibile, del database. Il backup deve essere reversibile: serve per tornare indietro se il tentativo non risolve.
  2. Rinomina temporaneamente .htaccess
    Se il sito è WordPress o usa rewrite, rinomina .htaccess in .htaccess.old e ricarica il sito. Se l’errore sparisce, la causa è nelle regole di riscrittura. In WordPress poi rigenera il file da Impostazioni > Permalink salvando di nuovo senza cambiare nulla.
  3. Disattiva i plugin in modo controllato
    Se non puoi entrare nel pannello, rinomina temporaneamente la cartella wp-content/plugins in plugins.off. Se il sito riparte, riattiva i plugin uno alla volta finché non trovi quello problematico. Questo è il test più rapido per isolare conflitti o plugin corrotti.
  4. Prova il tema predefinito
    Se il problema resta, rinomina la cartella del tema attivo oppure imposta un tema standard come Twenty Twenty-Four dal pannello. Se il sito torna online, il tema contiene un errore PHP o una funzione incompatibile.
  5. Aumenta i limiti PHP solo se il log lo indica
    Se nel log compare memoria insufficiente o timeout, alza i limiti in modo prudente. In molti hosting puoi farlo da MultiPHP INI Editor, PHP Settings o sezione equivalente. Intervieni solo sul valore necessario e verifica subito dopo il risultato.
  6. Controlla i permessi
    Le cartelle dovrebbero essere in genere a 755 e i file a 644. Permessi troppo larghi o troppo restrittivi possono causare errori 500. Se trovi valori anomali, correggili prima sulle directory principali e poi sui file del sito.
  7. Verifica il database
    Se il log segnala errori di connessione o query, controlla credenziali, stato del servizio MySQL/MariaDB e integrità del database. In WordPress, un problema al DB può apparire come errore 500 o pagina bianca a seconda del livello di errore esposto.

Comandi utili da terminale, se hai accesso SSH

Usa questi controlli solo se il pannello non basta o se vuoi confermare rapidamente la causa. Non sono distruttivi.

tail -n 100 /var/log/apache2/error.log

Mostra le ultime righe del log Apache su molte distribuzioni Debian/Ubuntu. L’esito atteso è un messaggio con file e motivo dell’errore.

tail -n 100 /var/log/httpd/error_log

Equivalente comune su Alma, Rocky o CentOS. Se il file non esiste, il percorso del log potrebbe essere diverso e va verificato con la configurazione del web server.

php -v

Serve a controllare che la versione PHP sia disponibile e coerente con il sito. Se il problema è nato dopo un upgrade, la compatibilità del CMS o di un plugin può essere la causa.

find /path/to/site -name .htaccess -o -name wp-config.php

Utile per individuare i file critici da controllare. Sostituisci /path/to/site con il percorso reale del sito.

Se il sito è WordPress

WordPress merita un controllo specifico perché gli errori 500 spesso dipendono da componenti installati sopra il core, non dal core stesso.

  1. Controlla wp-config.php
    Verifica che non ci siano errori di sintassi, caratteri strani o modifiche manuali recenti. Una riga sbagliata può bloccare tutto il sito.
  2. Disattiva cache e ottimizzazioni aggressive
    Plugin di cache, minify, sicurezza o ottimizzazione immagini possono generare 500 dopo aggiornamenti o conflitti. Se il sito rientra dopo la disattivazione, riattivali uno per volta.
  3. Confronta versione PHP e requisiti del tema/plugin
    Un plugin vecchio può fallire con PHP moderno, oppure il contrario. Se il log mostra funzioni deprecate o incompatibilità, valuta un downgrade temporaneo della versione PHP solo come test.
  4. Ri-salva i permalink
    Se il 500 compare solo su articoli o categorie, rigenerare i permalink può risolvere regole rewrite incoerenti.

Se il problema è lato server

Quando i controlli applicativi non bastano, la causa può essere nel web server, nel PHP handler o nelle risorse del server. In quel caso verifica:

  • Stato di Apache o Nginx, perché un servizio fermo o in errore può produrre 500 o 502 a seconda del setup.
  • Stato di PHP-FPM, specialmente se il sito usa pool dedicati o versioni multiple di PHP.
  • Spazio disco e inode, perché un filesystem pieno blocca cache, log e scritture temporanee.
  • Picchi di CPU e RAM, che possono far fallire richieste PHP anche se il sito sembra “quasi” online.

Se il pannello hosting mostra grafici o statistiche, controlla la fascia oraria del problema. Un picco coincidente con l’errore è un indizio molto forte.

Verifiche finali dopo il fix

  1. Ricarica homepage, pagina interna e login
    L’esito atteso è il caricamento senza errore 500 su più URL, non solo sulla home.
  2. Controlla di nuovo i log
    Non devono comparire nuovi fatal error o warning ripetuti. Se i log restano puliti, il fix è probabilmente stabile.
  3. Verifica form, ricerca, carrello o aree dinamiche
    Le pagine che eseguono più logica server-side sono quelle più utili per validare la stabilità reale.
  4. Conserva una copia dello stato precedente
    Se hai rinominato file o disattivato plugin, mantieni il backup per qualche ora o fino a conferma definitiva, così puoi fare rollback rapido se il problema si ripresenta.

Rollback sicuro se il tentativo non risolve

Se una modifica peggiora la situazione, ripristina un solo elemento per volta: prima .htaccess, poi plugin, poi tema, poi impostazioni PHP. Questo evita di confondere le cause e ti permette di capire quale intervento ha fatto differenza.

Se il rollback non basta, torna al backup iniziale e apri un ticket al provider allegando il messaggio esatto del log. Senza l’errore preciso, il supporto può solo fare controlli generici.

Checklist rapida

  • Ho trovato il messaggio preciso nel log errori.
  • Ho verificato .htaccess, plugin e tema in ordine.
  • Ho controllato limiti PHP, permessi e spazio disco.
  • Ho testato homepage e pagine interne dopo ogni modifica.
  • Ho tenuto pronto un rollback del file o del plugin toccato.

Se vuoi, il passo successivo più utile è costruire una procedura specifica per WordPress, cPanel o Plesk con i click esatti e i comandi minimi di verifica.