Internal Server Error 500: cause e soluzioni su Apache e cPanel : redirect

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.

ElementoPermesso tipicoNota
Cartelle755Il proprietario può scrivere; gli altri possono leggere e attraversare.
File644Il proprietario può scrivere; gli altri possono leggere.
Script CGI eseguibili755Solo 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-plugin

Per 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-checksums

Se 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

  1. Annota URL, ora esatta e operazione che ha preceduto l’errore.
  2. Crea un backup di file e database.
  3. Consulta cPanel → Metriche → Errori e gli eventuali file error_log.
  4. Se il log indica .htaccess, provalo con un nome temporaneo e ricrea regole pulite.
  5. Controlla permessi, proprietà e spazio disponibile.
  6. Verifica versione, estensioni e limiti PHP.
  7. Su WordPress disattiva il componente indicato e, se necessario, attiva il debug nel log.
  8. Svuota la cache dell’applicazione e del server, quindi riprova in una finestra anonima.
  9. 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.

Web Analytics è la misura, la raccolta, l’analisi e il reporting dei dati di Internet, utile per ottimizzare l’utilizzo di uno o più siti web.  In breve, ha la funzione di raccogliere informazioni al fine di rendere le pagine web di un sito maggiormente visibili.

Nell’elenco sotto riportato, citiamo alcuni strumenti gratuiti complementari o alternativi a Google Analytics:

Analizzatori File Log

Gli analizzatori di file di log sono degli strumenti di analisi semplici e riassumono l’attività web sulla base dei log http.

Analog (risorsa non più disponibile)

Analog è uno degli analizzatori di file log più popolare al mondo, altamente configurabile, disponibile in 32 lingue.

AWStats

AWStats è uno strumento molto potente e ricco di funzionalità avanzate, forse il più usato.

GoingUP

GoingUp fornisce un ottima analisi del sito web e integra anche degli strumenti Seo. Con GoingUp è possibile, controllare i visitatori, monitorare le vendite, vedere i tassi di conversione e migliorare le vostre strategie di ricerca.

Webalizer (sito ufficiale non più disponibile)

Webalizer è uno dei più leggeri e veloci analizzatore di log file. E’ in grado di mostrare statistiche altamente dettagliate, report di utilizzo, facilmente configurabile nel formato HTML.

WebLog Expert

WebLog Expert è un veloce e potente analizzatore di file log. E’ in grado dare informazioni sui visitatori del sito: attività, file accessibili, percorsi, informazioni sulle pagine, motori di ricerca, browser, sistemi operativi e altro ancora.

 

Servizi di Hosting Remoto

Sono dei servizi in hosting, molto simili a Google Analytics che richiedono di inserire un codice JavaScript in tutte le pagine del sito, tutti i dati e le informazioni sul traffico saranno nel database del fornitore del servizio.

Clicky

Analizza i dati in tempo reale, ha un limite di 3000 pagine visitate al giorno.

GoStats (sito non raggiungibile)

GoStats è un servizio nato nel 1999, fornisce statistiche traffico, contatore con analisi web.

Reinvigorate

Offre monitoraggio in tempo reale, un design piacevole e un client desktop. Versione Beta.

SiteMeter

E’ sicuramente uno dei servizi di statistiche più noti. La versione gratuita offre la maggior parte delle statistiche di base e richiede un l’installazione di un contatore nelle pagine del sito.

StatCounter

Offre un contatore, altamente configurabile con statistiche in tempo reale e dettagliate. Limite di 250.000 pagine visualizzate.

Yahoo Web Analytics

Fornisce dati e statistiche in tempo reale e alcune funzionalità di reporting avanzate. Ovviamente, è necessario un account Yahoo per usarlo.

 

Script Software

Richiedono una conoscenza più tecnica, perché è necessaria l’installazione del software nel server e la creazione delle tabelle del database.

Firestats

Firestats è gratuito, ma non per scopi commerciali.

Open Web analytics

E’ un software Open source, da provare.

Piwik

Un altro software open source, sicuramente la vera alternativa a Google Analytics. Probabilmente, il software open source più maturo.

Tracewatch

Un Software gratuito, multilingua, peccato che manchi la lingua Italiana.

 

Alla Prossima