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
- 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. - 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 comePHP Fatal error,Allowed memory size exhausted,Premature end of script headersoPermission deniedpunta già alla causa. - 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
.htaccessdanneggiato, 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
- 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. - 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. - Controlla il file manager
Verifica la presenza di.htaccess, la cartellawp-contentse è 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
- 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. - Rinomina temporaneamente
.htaccess
Se il sito è WordPress o usa rewrite, rinomina.htaccessin.htaccess.olde 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. - Disattiva i plugin in modo controllato
Se non puoi entrare nel pannello, rinomina temporaneamente la cartellawp-content/pluginsinplugins.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. - 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. - 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. - Controlla i permessi
Le cartelle dovrebbero essere in genere a755e i file a644. 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. - 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.logMostra 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_logEquivalente 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 -vServe 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.phpUtile 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.
- 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. - 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. - 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. - 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
- Ricarica homepage, pagina interna e login
L’esito atteso è il caricamento senza errore 500 su più URL, non solo sulla home. - Controlla di nuovo i log
Non devono comparire nuovi fatal error o warning ripetuti. Se i log restano puliti, il fix è probabilmente stabile. - Verifica form, ricerca, carrello o aree dinamiche
Le pagine che eseguono più logica server-side sono quelle più utili per validare la stabilità reale. - 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.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.