{"id":5944,"date":"2012-05-13T14:32:28","date_gmt":"2012-05-13T12:32:28","guid":{"rendered":"http:\/\/xlogic.org\/blog\/?p=5944"},"modified":"2026-08-01T16:38:44","modified_gmt":"2026-08-01T14:38:44","slug":"come-correggere-gli-internal-server-errors-su-apache-e-cpanel","status":"publish","type":"post","link":"https:\/\/xlogic.org\/blog\/come-correggere-gli-internal-server-errors-su-apache-e-cpanel.html\/","title":{"rendered":"Internal Server Error 500: cause e soluzioni su Apache e cPanel"},"content":{"rendered":"<p><strong>Un Internal Server Error, spesso mostrato come errore HTTP 500, indica che il server non \u00e8 riuscito a completare la richiesta.<\/strong> Il messaggio \u00e8 generico: non identifica da solo la causa e non significa necessariamente che il server sia guasto. Su Apache e cPanel il problema pu\u00f2 dipendere da un file <code>.htaccess<\/code> non valido, da permessi o propriet\u00e0 errati, da un errore PHP, da un plugin WordPress, dalla versione di PHP oppure dal superamento di un limite di risorse.<\/p>\n<p>La soluzione pi\u00f9 sicura non \u00e8 modificare file a tentativi, ma leggere prima il log degli errori, individuare l&#8217;evento relativo all&#8217;ora e all&#8217;URL interessati e intervenire solo sull&#8217;elemento indicato. Prima di ogni modifica \u00e8 inoltre opportuno creare un backup dei file e del database.<\/p>\n<h2>Che cos&#8217;\u00e8 un Internal Server Error 500<\/h2>\n<p>Il codice HTTP <code>500 Internal Server Error<\/code> 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&#8217;applicazione.<\/p>\n<p>L&#8217;errore pu\u00f2 interessare tutto il sito oppure una singola pagina. Se compare dopo un aggiornamento, una modifica al file <code>.htaccess<\/code>, il cambio della versione PHP o l&#8217;installazione di un plugin, l&#8217;ultima operazione eseguita \u00e8 il primo elemento da verificare. Se invece appare senza modifiche evidenti, occorre controllare log, risorse e integrit\u00e0 dei file.<\/p>\n<h2>Prima verifica: leggere il log degli errori in cPanel<\/h2>\n<p>In cPanel apri <strong>Metriche \u2192 Errori<\/strong>. La pagina mostra gli eventi recenti registrati per il dominio e pu\u00f2 indicare il file, la riga o la direttiva che ha causato il problema. In alcuni account \u00e8 disponibile anche un file <code>error_log<\/code> nella cartella del sito, ad esempio dentro <code>public_html<\/code> o nella directory dell&#8217;applicazione.<\/p>\n<p>Riproduci l&#8217;errore una sola volta, annota l&#8217;ora esatta e aggiorna il log. Cerca una riga con lo stesso orario e con il percorso della pagina coinvolta. Messaggi come <code>PHP Fatal error<\/code>, <code>Allowed memory size exhausted<\/code>, <code>Invalid command<\/code>, <code>Permission denied<\/code> o <code>End of script output before headers<\/code> portano a diagnosi differenti.<\/p>\n<p>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&#8217;ora dell&#8217;errore e all&#8217;URL interessato.<\/p>\n<h2>Cause pi\u00f9 comuni dell&#8217;errore 500 su Apache e cPanel<\/h2>\n<h3>1. File .htaccess errato o non compatibile<\/h3>\n<p>Una direttiva scritta male, non consentita dalla configurazione del server oppure rimasta da una vecchia versione di PHP pu\u00f2 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.<\/p>\n<p>Dal File Manager di cPanel attiva la visualizzazione dei file nascosti, crea una copia di sicurezza di <code>.htaccess<\/code> e rinominalo temporaneamente, per esempio in <code>.htaccess-old<\/code>. Se il sito torna raggiungibile, la causa \u00e8 contenuta nel file. Non lasciare per\u00f2 il sito senza regole: ricrea un file pulito e reinserisci le direttive una alla volta.<\/p>\n<p>Le vecchie righe come <code>AddType application\/x-httpd-php5 .php<\/code> non devono essere copiate in configurazioni moderne. La versione PHP va selezionata dagli strumenti previsti dal proprio hosting, come <strong>MultiPHP Manager<\/strong> o <strong>Select PHP Version<\/strong>, senza riutilizzare handler obsoleti.<\/p>\n<p>Su WordPress puoi rigenerare le regole standard aprendo <strong>Impostazioni \u2192 Permalink<\/strong> e salvando nuovamente la struttura, dopo aver verificato che l&#8217;area amministrativa sia accessibile. Conserva eventuali regole personalizzate e ripristinale soltanto dopo averle controllate.<\/p>\n<h3>2. Permessi o propriet\u00e0 di file e cartelle<\/h3>\n<p>In una configurazione hosting tipica, le cartelle utilizzano permessi <code>755<\/code> e i file <code>644<\/code>. Gli script che devono essere realmente eseguibili possono richiedere impostazioni differenti, ma non \u00e8 corretto assegnare indiscriminatamente <code>755<\/code> a tutti i file. I permessi <code>777<\/code> sono generalmente inutili e rischiosi.<\/p>\n<table>\n<thead>\n<tr>\n<th>Elemento<\/th>\n<th>Permesso tipico<\/th>\n<th>Nota<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Cartelle<\/td>\n<td><code>755<\/code><\/td>\n<td>Il proprietario pu\u00f2 scrivere; gli altri possono leggere e attraversare.<\/td>\n<\/tr>\n<tr>\n<td>File<\/td>\n<td><code>644<\/code><\/td>\n<td>Il proprietario pu\u00f2 scrivere; gli altri possono leggere.<\/td>\n<\/tr>\n<tr>\n<td>Script CGI eseguibili<\/td>\n<td><code>755<\/code><\/td>\n<td>Solo quando l&#8217;esecuzione \u00e8 effettivamente richiesta.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Controlla i valori dal File Manager o tramite FTP. Se sembrano corretti ma il log continua a mostrare <code>Permission denied<\/code>, 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.<\/p>\n<h3>3. Errore PHP o limite di memoria<\/h3>\n<p>Un errore fatale PHP interrompe l&#8217;esecuzione e pu\u00f2 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.<\/p>\n<p>Se trovi <code>Allowed memory size exhausted<\/code>, verifica il consumo dell&#8217;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 <strong>Select PHP Version \u2192 Options<\/strong> oppure da <strong>MultiPHP INI Editor<\/strong>. Consulta anche la guida su <a href=\"https:\/\/xlogic.org\/kb\/knowledgebase\/allowed-memory-size-exhausted-php\/\">Allowed memory size exhausted in PHP<\/a>.<\/p>\n<p>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&#8217;aggiornamento del componente incompatibile.<\/p>\n<h3>4. Plugin o tema WordPress incompatibile<\/h3>\n<p>Se l&#8217;errore \u00e8 comparso subito dopo l&#8217;attivazione o l&#8217;aggiornamento di un plugin, disattivalo dall&#8217;area amministrativa. Se WordPress non \u00e8 accessibile, rinomina via File Manager la cartella del singolo plugin dentro <code>wp-content\/plugins<\/code>. Per una diagnosi generale puoi rinominare temporaneamente la cartella <code>plugins<\/code>, verificare il sito e poi ripristinare il nome originale.<\/p>\n<p>Con WP-CLI, quando disponibile, puoi controllare lo stato dei plugin e disattivare quello sospetto:<\/p>\n<pre><code>wp plugin list\r\nwp plugin deactivate nome-plugin<\/code><\/pre>\n<p>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 <code>wp-admin<\/code> o <code>wp-includes<\/code> senza aver prima identificato la causa e controllato la versione esatta del core.<\/p>\n<h3>5. Limiti di risorse o processi interrotti<\/h3>\n<p>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&#8217;orario del limite con quello dell&#8217;errore. Aumentare un valore pu\u00f2 aiutare solo se il carico \u00e8 legittimo e temporaneo; in presenza di un processo anomalo \u00e8 necessario correggere la causa.<\/p>\n<h3>6. File danneggiati o caricamenti incompleti<\/h3>\n<p>Un aggiornamento interrotto pu\u00f2 lasciare file mancanti o parziali. Confronta i file con una copia integra della stessa versione dell&#8217;applicazione e controlla lo spazio disponibile. Per WordPress, WP-CLI permette di verificare i checksum del core senza modificare i contenuti:<\/p>\n<pre><code>wp core verify-checksums<\/code><\/pre>\n<p>Se la verifica segnala differenze, crea un backup e reinstalla soltanto i file del core della medesima versione. Le cartelle <code>wp-content<\/code> e i file di configurazione non devono essere sovrascritti indiscriminatamente.<\/p>\n<h2>Come attivare il debug di WordPress senza mostrare errori ai visitatori<\/h2>\n<p>Quando il log del server non basta, WordPress pu\u00f2 registrare gli errori nel file <code>wp-content\/debug.log<\/code>. Inserisci temporaneamente nel file <code>wp-config.php<\/code>, prima della riga finale di stop, queste costanti:<\/p>\n<pre><code>define( 'WP_DEBUG', true );\r\ndefine( 'WP_DEBUG_LOG', true );\r\ndefine( 'WP_DEBUG_DISPLAY', false );\r\n@ini_set( 'display_errors', 0 );<\/code><\/pre>\n<p>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\u00f2 contenere informazioni sensibili e non deve essere lasciato accessibile o crescere senza controllo. La procedura completa \u00e8 descritta anche nella <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/debug\/debug-wordpress\/\" rel=\"noopener\" target=\"_blank\">documentazione ufficiale WordPress<\/a>.<\/p>\n<h2>Procedura rapida per risolvere un errore 500<\/h2>\n<ol>\n<li>Annota URL, ora esatta e operazione che ha preceduto l&#8217;errore.<\/li>\n<li>Crea un backup di file e database.<\/li>\n<li>Consulta <strong>cPanel \u2192 Metriche \u2192 Errori<\/strong> e gli eventuali file <code>error_log<\/code>.<\/li>\n<li>Se il log indica <code>.htaccess<\/code>, provalo con un nome temporaneo e ricrea regole pulite.<\/li>\n<li>Controlla permessi, propriet\u00e0 e spazio disponibile.<\/li>\n<li>Verifica versione, estensioni e limiti PHP.<\/li>\n<li>Su WordPress disattiva il componente indicato e, se necessario, attiva il debug nel log.<\/li>\n<li>Svuota la cache dell&#8217;applicazione e del server, quindi riprova in una finestra anonima.<\/li>\n<li>Riattiva un componente alla volta e controlla nuovamente i log.<\/li>\n<\/ol>\n<h2>Cosa comunicare all&#8217;assistenza hosting<\/h2>\n<p>Se l&#8217;Internal Server Error continua, apri una richiesta indicando il dominio, l&#8217;URL esatto, l&#8217;orario con fuso orario, le operazioni gi\u00e0 eseguite e poche righe pertinenti del log. Specifica se il problema riguarda tutte le pagine, soltanto l&#8217;amministrazione o un singolo percorso. Queste informazioni permettono di distinguere rapidamente un errore dell&#8217;applicazione da un limite o da una configurazione lato server.<\/p>\n<p>Evita di inviare password, chiavi API, cookie, backup completi o log non filtrati. Il supporto pu\u00f2 verificare configurazione, propriet\u00e0 dei file e registri non accessibili dall&#8217;account; lo sviluppatore del sito pu\u00f2 invece intervenire sul codice indicato dal messaggio PHP.<\/p>\n<h2>Domande frequenti sull&#8217;Internal Server Error<\/h2>\n<h3>L&#8217;errore 500 significa che il server \u00e8 offline?<\/h3>\n<p>No. Il server pu\u00f2 essere perfettamente raggiungibile e non riuscire a completare soltanto una specifica richiesta. Il log degli errori \u00e8 necessario per conoscere la causa reale.<\/p>\n<h3>Posso impostare file e cartelle a 777?<\/h3>\n<p>\u00c8 sconsigliato. In genere le cartelle usano <code>755<\/code> e i file <code>644<\/code>. Se questi valori non funzionano, occorre verificare propriet\u00e0 e configurazione invece di concedere permessi indiscriminati.<\/p>\n<h3>Rinominare .htaccess \u00e8 sufficiente?<\/h3>\n<p>\u00c8 un test diagnostico, non sempre la soluzione definitiva. Se il sito riparte, crea un file valido e reinserisci con cautela le sole regole necessarie.<\/p>\n<h3>L&#8217;aumento della memoria PHP risolve sempre?<\/h3>\n<p>No. Pu\u00f2 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.<\/p>\n<h3>Quando devo contattare il provider?<\/h3>\n<p>Quando non puoi accedere ai log necessari, quando ownership e configurazione del server richiedono privilegi amministrativi oppure quando l&#8217;errore persiste dopo aver escluso file <code>.htaccess<\/code>, applicazione e limiti visibili dall&#8217;account.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un Internal Server Error, spesso mostrato come errore HTTP 500, indica che il server non \u00e8 riuscito a completare la richiesta. Il messaggio \u00e8 generico: non identifica da solo la causa e non significa necessariamente che il server sia guasto. Su Apache e cPanel il problema pu\u00f2 dipendere da un file .htaccess non valido, da [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":19149,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"","footnotes":""},"categories":[4,1419],"tags":[669,11,670,671,668,261],"class_list":["post-5944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide","category-performance-e-sicurezza","tag-apache","tag-cpanel","tag-errore-interno-server","tag-htaccess","tag-internal-server-errors","tag-redirect"],"modified_by":"Team tecnico Xlogic","_links":{"self":[{"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/posts\/5944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/comments?post=5944"}],"version-history":[{"count":0,"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/posts\/5944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/media\/19149"}],"wp:attachment":[{"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/media?parent=5944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/categories?post=5944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xlogic.org\/blog\/wp-json\/wp\/v2\/tags?post=5944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}