Un Internal Server Error, spesso mostrato come errore HTTP 500, indica che il server non è riuscito a completare la richiesta. Il messaggio è generico: non identifica da solo la causa e non significa necessariamente che il server sia guasto. Su Apache e cPanel il problema può dipendere da un file .htaccess non valido, da permessi o proprietà errati, da un errore PHP, da un plugin WordPress, dalla versione di PHP oppure dal superamento di un limite di risorse.
La soluzione più sicura non è modificare file a tentativi, ma leggere prima il log degli errori, individuare l’evento relativo all’ora e all’URL interessati e intervenire solo sull’elemento indicato. Prima di ogni modifica è inoltre opportuno creare un backup dei file e del database.
Che cos’è un Internal Server Error 500
Il codice HTTP 500 Internal Server Error viene restituito quando il server incontra una condizione imprevista che gli impedisce di generare correttamente la pagina. Il browser vede soltanto il codice generico, mentre il dettaglio tecnico viene normalmente scritto nei log del server o dell’applicazione.
L’errore può interessare tutto il sito oppure una singola pagina. Se compare dopo un aggiornamento, una modifica al file .htaccess, il cambio della versione PHP o l’installazione di un plugin, l’ultima operazione eseguita è il primo elemento da verificare. Se invece appare senza modifiche evidenti, occorre controllare log, risorse e integrità dei file.
Prima verifica: leggere il log degli errori in cPanel
In cPanel apri Metriche → Errori. La pagina mostra gli eventi recenti registrati per il dominio e può indicare il file, la riga o la direttiva che ha causato il problema. In alcuni account è disponibile anche un file error_log nella cartella del sito, ad esempio dentro public_html o nella directory dell’applicazione.
Riproduci l’errore una sola volta, annota l’ora esatta e aggiorna il log. Cerca una riga con lo stesso orario e con il percorso della pagina coinvolta. Messaggi come PHP Fatal error, Allowed memory size exhausted, Invalid command, Permission denied o End of script output before headers portano a diagnosi differenti.
Non pubblicare integralmente i log: possono contenere percorsi del server, indirizzi IP o altri dati tecnici. Quando chiedi assistenza, invia soltanto le righe pertinenti insieme all’ora dell’errore e all’URL interessato.
Cause più comuni dell’errore 500 su Apache e cPanel
1. File .htaccess errato o non compatibile
Una direttiva scritta male, non consentita dalla configurazione del server oppure rimasta da una vecchia versione di PHP può produrre immediatamente un Internal Server Error. Anche regole di riscrittura che si richiamano tra loro possono creare un ciclo e impedire il caricamento della pagina.
Dal File Manager di cPanel attiva la visualizzazione dei file nascosti, crea una copia di sicurezza di .htaccess e rinominalo temporaneamente, per esempio in .htaccess-old. Se il sito torna raggiungibile, la causa è contenuta nel file. Non lasciare però il sito senza regole: ricrea un file pulito e reinserisci le direttive una alla volta.
Le vecchie righe come AddType application/x-httpd-php5 .php non devono essere copiate in configurazioni moderne. La versione PHP va selezionata dagli strumenti previsti dal proprio hosting, come MultiPHP Manager o Select PHP Version, senza riutilizzare handler obsoleti.
Su WordPress puoi rigenerare le regole standard aprendo Impostazioni → Permalink e salvando nuovamente la struttura, dopo aver verificato che l’area amministrativa sia accessibile. Conserva eventuali regole personalizzate e ripristinale soltanto dopo averle controllate.
2. Permessi o proprietà di file e cartelle
In una configurazione hosting tipica, le cartelle utilizzano permessi 755 e i file 644. Gli script che devono essere realmente eseguibili possono richiedere impostazioni differenti, ma non è corretto assegnare indiscriminatamente 755 a tutti i file. I permessi 777 sono generalmente inutili e rischiosi.
| Elemento | Permesso tipico | Nota |
|---|---|---|
| Cartelle | 755 | Il proprietario può scrivere; gli altri possono leggere e attraversare. |
| File | 644 | Il proprietario può scrivere; gli altri possono leggere. |
| Script CGI eseguibili | 755 | Solo quando l’esecuzione è effettivamente richiesta. |
Controlla i valori dal File Manager o tramite FTP. Se sembrano corretti ma il log continua a mostrare Permission denied, il problema potrebbe essere il proprietario del file e non il numero dei permessi. In questo caso evita correzioni ricorsive alla cieca e chiedi al provider di verificare ownership e gruppo.
3. Errore PHP o limite di memoria
Un errore fatale PHP interrompe l’esecuzione e può essere visualizzato come errore 500. Il log indica normalmente il file e la riga coinvolti. Le cause frequenti includono funzioni mancanti, codice non compatibile con la versione PHP attiva, estensioni assenti e memoria insufficiente.
Se trovi Allowed memory size exhausted, verifica il consumo dell’applicazione prima di aumentare il limite. Un plugin difettoso o una query anomala possono esaurire anche un valore elevato. Quando il piano lo consente, i limiti PHP possono essere modificati in cPanel da Select PHP Version → Options oppure da MultiPHP INI Editor. Consulta anche la guida su Allowed memory size exhausted in PHP.
Dopo un cambio di versione PHP controlla che tutte le estensioni necessarie siano abilitate e che CMS, tema e plugin siano compatibili. Non passare a una versione PHP obsoleta come soluzione permanente: usa il downgrade soltanto come test temporaneo e pianifica l’aggiornamento del componente incompatibile.
4. Plugin o tema WordPress incompatibile
Se l’errore è comparso subito dopo l’attivazione o l’aggiornamento di un plugin, disattivalo dall’area amministrativa. Se WordPress non è accessibile, rinomina via File Manager la cartella del singolo plugin dentro wp-content/plugins. Per una diagnosi generale puoi rinominare temporaneamente la cartella plugins, verificare il sito e poi ripristinare il nome originale.
Con WP-CLI, quando disponibile, puoi controllare lo stato dei plugin e disattivare quello sospetto:
wp plugin list
wp plugin deactivate nome-pluginPer escludere il tema, attiva temporaneamente un tema WordPress predefinito soltanto dopo aver effettuato un backup e verificato che sia installato. Non sostituire intere cartelle wp-admin o wp-includes senza aver prima identificato la causa e controllato la versione esatta del core.
5. Limiti di risorse o processi interrotti
CPU, memoria, processi simultanei e timeout possono essere superati durante importazioni, backup, scansioni, operazioni WooCommerce o picchi di traffico. In cPanel verifica le statistiche disponibili e confronta l’orario del limite con quello dell’errore. Aumentare un valore può aiutare solo se il carico è legittimo e temporaneo; in presenza di un processo anomalo è necessario correggere la causa.
6. File danneggiati o caricamenti incompleti
Un aggiornamento interrotto può lasciare file mancanti o parziali. Confronta i file con una copia integra della stessa versione dell’applicazione e controlla lo spazio disponibile. Per WordPress, WP-CLI permette di verificare i checksum del core senza modificare i contenuti:
wp core verify-checksumsSe la verifica segnala differenze, crea un backup e reinstalla soltanto i file del core della medesima versione. Le cartelle wp-content e i file di configurazione non devono essere sovrascritti indiscriminatamente.
Come attivare il debug di WordPress senza mostrare errori ai visitatori
Quando il log del server non basta, WordPress può registrare gli errori nel file wp-content/debug.log. Inserisci temporaneamente nel file wp-config.php, prima della riga finale di stop, queste costanti:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );In questo modo gli errori vengono registrati senza essere mostrati pubblicamente. Riproduci il problema, scarica le sole righe utili e poi disattiva il debug. Il file di log può contenere informazioni sensibili e non deve essere lasciato accessibile o crescere senza controllo. La procedura completa è descritta anche nella documentazione ufficiale WordPress.
Procedura rapida per risolvere un errore 500
- Annota URL, ora esatta e operazione che ha preceduto l’errore.
- Crea un backup di file e database.
- Consulta cPanel → Metriche → Errori e gli eventuali file
error_log. - Se il log indica
.htaccess, provalo con un nome temporaneo e ricrea regole pulite. - Controlla permessi, proprietà e spazio disponibile.
- Verifica versione, estensioni e limiti PHP.
- Su WordPress disattiva il componente indicato e, se necessario, attiva il debug nel log.
- Svuota la cache dell’applicazione e del server, quindi riprova in una finestra anonima.
- Riattiva un componente alla volta e controlla nuovamente i log.
Cosa comunicare all’assistenza hosting
Se l’Internal Server Error continua, apri una richiesta indicando il dominio, l’URL esatto, l’orario con fuso orario, le operazioni già eseguite e poche righe pertinenti del log. Specifica se il problema riguarda tutte le pagine, soltanto l’amministrazione o un singolo percorso. Queste informazioni permettono di distinguere rapidamente un errore dell’applicazione da un limite o da una configurazione lato server.
Evita di inviare password, chiavi API, cookie, backup completi o log non filtrati. Il supporto può verificare configurazione, proprietà dei file e registri non accessibili dall’account; lo sviluppatore del sito può invece intervenire sul codice indicato dal messaggio PHP.
Domande frequenti sull’Internal Server Error
L’errore 500 significa che il server è offline?
No. Il server può essere perfettamente raggiungibile e non riuscire a completare soltanto una specifica richiesta. Il log degli errori è necessario per conoscere la causa reale.
Posso impostare file e cartelle a 777?
È sconsigliato. In genere le cartelle usano 755 e i file 644. Se questi valori non funzionano, occorre verificare proprietà e configurazione invece di concedere permessi indiscriminati.
Rinominare .htaccess è sufficiente?
È un test diagnostico, non sempre la soluzione definitiva. Se il sito riparte, crea un file valido e reinserisci con cautela le sole regole necessarie.
L’aumento della memoria PHP risolve sempre?
No. Può risolvere un limite adeguato male, ma non corregge un plugin difettoso, un ciclo o una query inefficiente. Prima identifica dal log quale processo consuma memoria.
Quando devo contattare il provider?
Quando non puoi accedere ai log necessari, quando ownership e configurazione del server richiedono privilegi amministrativi oppure quando l’errore persiste dopo aver escluso file .htaccess, applicazione e limiti visibili dall’account.






















