Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Procédure

Come eseguire il debug di una pagina vuota o di un errore 500

Quando si cerca di visitare un sito web e viene visualizzato il messaggio di errore "500 Internal Server Error", significa che qualcosa è andato storto con il sito web. L'errore può essere particolarmente frustrante perché non fornisce alcuna informazione sulla causa specifica dell'errore. Questo articolo mostra come eseguire il debug di un errore 500 sul vostro sito web.

Qual è la differenza tra una pagina bianca e un errore 500?

Una pagina vuota non è necessariamente un errore 500 e viceversa. Un errore 500 significa che si è verificato un errore durante l'elaborazione della richiesta HTTP. Potrebbe trattarsi di un errore nell'esecuzione dello script associato, di un problema di accesso a una risorsa, ecc. che induce il server Web a restituire una risposta con il codice di errore 500. Una pagina vuota, invece, non è necessariamente un errore. Una pagina vuota, invece, significa che il server Web non ha restituito alcun corpo nella sua risposta, o addirittura nessuna risposta.

In alcune situazioni, un errore 500 significa che il server Web non ha risposte da dare e quindi causa una pagina bianca. Questo può accadere quando non è stata configurata alcuna pagina di errore 500, oppure se l'output dell'errore è stato disabilitato e quindi il sito non ha alcun messaggio di errore da menzionare.

Alcuni browser come Chrome e Internet Explorer visualizzano la propria pagina di errore 500 quando ricevono il codice di errore dell'intestazione HTTP senza che il server fornisca alcun contenuto nel corpo della risposta:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Gli errori 500 sono spesso legati a un problema con uno dei file .htaccess che agiscono sull'URL o a un errore PHP. Quindi, attivando la visualizzazione degli errori con l'opzione display_errors del php.ini, si dovrebbero vedere gli errori PHP apparire al posto dell'errore 500.

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Come si fa a capire se si tratta di un errore 500?

Per determinare se si tratta di un errore 500, è necessario esaminare il codice di errore HTTP restituito dal server web al browser. Questo codice può essere identificato utilizzando la scheda "Rete" nella console degli sviluppatori del browser:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Come si identificano i problemi che causano l'errore 500?

La prima cosa da fare è controllare i file di log associati alla richiesta HTTP: il file di log di Apache e il file di log di PHP. Gli ultimi 300 eventi che vi riguardano nel file di log di Apache possono essere consultati dall'icona "Errori" dell'interfaccia di cPanel, mentre il file di log di PHP è generalmente il file "error_log" visibile accanto al file PHP interessato:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Tuttavia, è possibile che gli errori non vengano visualizzati nei log. Questo può essere il risultato di una configurazione che impedisce la visualizzazione e/o la registrazione degli errori PHP. Per saperne di più.

Tuttavia, se si utilizza WordPress, Prestashop o Joomla, è possibile che le modifiche non siano visibili. In questo caso, è necessarioattivare la visualizzazione degli errori nei rispettivi file di configurazione .

Come si attiva la modalità di debug del sito?

La maggior parte dei CMS, come WordPress, dispone di un sistema interno di gestione degli errori, che impedisce ai parametri PHP presenti di elaborare e agire in base all'errore riscontrato. Attivando la modalità di debug, si chiede a questo sistema interno di gestione degli errori di visualizzare gli errori e/o di aumentare la verbosità dei file di log.

Per attivare la modalità di debug, potete collegarvi direttamente al"File Manager" accessibile dalla vostra interfaccia cPanel e modificare il file di configurazione associato per attivare questa modalità.

Come si attiva la modalità di debug su WordPress?

Se il vostro sito è stato creato con WordPress, potete attivare la modalità di debug dal file"wp-config.php" nella root del vostro hosting web. Per farlo, basta cambiare la costante"WP_DEBUG" in"true" anziché"false".

Se lo si desidera, si può anche aggiungere la costante WP_DEBUG_LOG per registrare gli errori nel file"wp-content/debug.log".

Dovete anche controllare che la costante"WP_DEBUG_DISPLAY" non sia definita nel vostro file di configurazione. Se lo è, è necessario impostare anche questo valore a true.

Il file di configurazione dovrebbe avere questo aspetto:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Come si attiva la modalità Debug su Prestashop?

Su Prestashop, è possibile attivare la modalità di debug accedendo al file"define.inc.php" nella cartella"config".

È necessario modificare la dichiarazione "_PS_MOD_DEV_" in"true" anziché"false". Se necessario, si può anche attivare la modalità"_PS_DEBUG_PROFILING_", che fornirà maggiori informazioni.

Il file di configurazione dovrebbe avere questo aspetto:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Come si attiva la modalità Debug su Joomla?

Per Joomla, è possibile attivare la modalità di debug modificando il file configuration.php. In questo file, è necessario cambiare la variabile"$debug" a 1 per attivarla. È inoltre necessario cambiare la variabile $error_reporting a"maximum", in modo da visualizzare tutti gli errori.

Il file di configurazione dovrebbe avere questo aspetto:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Come si attiva la modalità debug su altri CMS?

È possibile che si utilizzi un altro CMS. Per sapere come attivare la modalità di debug, potete anche digitare"CMS name + Debug" nel motore di ricerca. Questo dovrebbe portarvi direttamente a un tutorial che spiega come attivare questa modalità.

Capire i diversi errori di PHP

È relativamente facile capire l'origine di un errore 500, poiché molto spesso sono gli stessi errori a ripetersi.

1. Il primo e più comune errore è il"Parse error". Spesso indica un problema di sintassi (un errore nella programmazione del codice). L'errore è definito come segue:

  • Parse Error: definisce che si tratta di un errore di codice.
  • Viene visualizzato un messaggio in inglese per fornire maggiori informazioni sul tipo di errore
  • Il percorso del file in cui si verifical'errore e la riga interessata dall'errore.

Se prendiamo l'esempio del file index.php del nostro sito Wordpress in cui manca un punto e virgola alla fine della riga 17, il file Web in cui si trova l'errore è il seguente:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

L'errore visibile quando si accede all'URL sarà il seguente:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

2. L'errore"Parse error: syntax error, unexpected end of file" indica che sembra mancare qualcosa alla fine del file.

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

In questo codice, ad esempio, manca la parentesi graffa che chiude l'istruzione if.

3. Il Parse Error: syntax error, unexpected (T_STRING), expecting ','or'; '' è spesso dovuto a un errore relativo alle virgolette nel codice.

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

In questo codice, manca il backslash sulla parola"error", come nel codice seguente, per farlo funzionare:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

4. Si può anche vedere un"errorefatale". Questo è uno degli errori più gravi che si possano incontrare. Inoltre, causa l'interruzione dello script. È definito come segue:

  • Errore fatale: questo messaggio indica che l'errore è fatale e interrompe l'esecuzione dello script.
  • Messaggio: un messaggio segue il codice "Fatal error" per spiegare il motivo dell'errore.
  • Percorso di accesso: vengono indicati il percorso di accesso e la riga che causa il problema.

Questo errore spesso indica che una funzione non è stata definita, come nel codice seguente:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

Verrà quindi visualizzato il seguente errore: Fatal Error: Uncaught Error: Call to undefined function (errore non definito ).

Questo errore è spesso dovuto a una delle seguenti cause:

  • Si è verificato un errore di battitura nella funzione definita
  • Il file PHP contenente la funzione non è stato caricato nello script.
  • Se la funzione fa parte di un'estensione PHP, l'estensione PHP potrebbe non essere stata caricata.

5. È possibile che venga visualizzato un errore"Fatal Error: cannot redeclare", che indica che la funzione è stata definita una seconda volta. Il codice potrebbe apparire come questo:

Diagnosticare e correggere un errore 500 su un sito ospitato su cPanel

È possibile evitare questo errore modificando il nome della funzione ridefinita:

  • cambiando il nome della funzione ridefinita
  • Potrebbe anche trattarsi di un problema di spazio dei nomi. In questo caso, è necessario controllare lo spazio dei nomi e indicare il percorso completo di accesso alla funzione.

6. È possibile che venga visualizzato l'errore"Fatal Error: allowed memory size exhausted".

Ciò indica che lo script PHP sta utilizzando troppa RAM e supera il valore massimo autorizzato in PHP.INI. Si tratta del valore "memory_limit". È possibile modificare questo valore nelle formule di cPanel. Se, nonostante l'aumento del valore a un livello sufficientemente alto, il problema persiste, è possibile che un'operazione che consuma molta memoria venga ripetuta troppo spesso (o addirittura all'infinito) nel vostro script PHP. Anche i loop infiniti sono possibili cause di questo tipo di errore.

7. L'errore"Fatal Error: Maximum execution time exceeded" significa che il tempo di esecuzione dello script è stato superato. È possibile modificare il valore"max_execution_time" nella configurazione di PHP.INI. Si noti tuttavia che qualsiasi processo in esecuzione per più di 490 secondi non è consentito sui nostri pacchetti di hosting condiviso cPanel, ma soprattutto che se una pagina richiede un max_execution_time più elevato, ciò significa anche che si caricherà più lentamente, il che non è generalmente auspicabile. Se la pagina che ha generato questo errore elabora molti dati, vi consigliamo di effettuare un'elaborazione in batch. Ad esempio, invece di elaborare 1000 prodotti ogni volta che si apre la pagina, sarebbe più opportuno elaborare lotti di 100 prodotti, utilizzando ad esempio richieste AJAX. In questo modo si otterrà un TTFB (Time-To-First-Byte) più basso.

8. L'errore"Fatal error: Uncaught Error: Call to undefined function mysql_connect()" significa che il modulo"mysql" non è caricato nella versione di PHP in uso. L'errore si verifica quando:

  • Si utilizza la versione 7 o superiore di PHP, ma il sito non è compatibile con questa versione.
  • Si utilizza una versione di PHP5, ma il modulo "MySQL" non è attivato.

È possibile cambiare facilmente la versione PHP andando su"Seleziona una versione PHP" nell'interfaccia del cPanel.

9. L'errore"Permessi negati" significa che PHP non ha i diritti per accedere a un determinato file o cartella. Questo errore si presenta spesso nella forma seguente:

Warning file_put_contatti(/home/c123456/public_html/dossier/file.php): failed to open stream: Permission denied in /home/c123456/index.php on line 20

In questo caso, è necessario controllare i chmod dei file e delle cartelle. In linea di massima, i chmod sono i seguenti:

  • 644 : per un file
  • 755 : per una cartella

10. L'errore"No such file or directory" indica che PHP deve includere un file che non sembra essere presente nel vostro spazio FTP. L'errore rappresenta quanto segue:

Warning: require_once(/home/c123456/public_html/dossier/fichier.php): failed to open stream: No such file or directory in /home/c123456/public_html/index.php on line 20

In questo caso, è necessario :

  • Verificare che il file in questione esista sul proprio spazio FTP. In caso contrario, è necessario ricaricare il file.
  • Verificare di avere i diritti corretti per il file, cioè CHMOD. Le cartelle hanno generalmente chmod 755 e i file chmod 644.
  • Verificare che il percorso indicato nello script PHP sia quello corretto.

11. Potrebbe essere visualizzato l'errore"Warning:session_start(): Cannot send session cookie headers already sent", che indica che è già stato generato uno stream e che quindi non è più possibile utilizzare la funzione"session_start". Questo errore può essere visto nella forma seguente:

Attenzione: session_start(): Cannot send session cookie - headers already sent by (output started at /home/c123456/public_html/dossier/session.php:2 in /home/c123456/public_html/dossier/session.php on line 20

Le 3 possibili cause di questo errore sono le seguenti:

  • una direttiva che visualizza il testo prima che la funzione venga chiamata
  • un problema di set di caratteri (in particolare BOM_UTF8). Questo errore si verifica sempre sulla prima riga del codice
  • caratteri invisibili sullo schermo ma presenti nei file. Gli editor di codice come Visual Studio Code consentono di vedere questi errori.

Conclusione

Ora potete scoprire il motivo di un errore 500 o di una pagina vuota. Potete anche risolvere i problemi del vostro sito web.

Non esitate a fare domande e/o commenti.

Vota questo articolo :

2,5/5 | 2 parere

Questo articolo vi è stato utile ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Articoli simili

3mn lettura

Wordpress su cPanel: risolvere il problema della pagina bianca o dell'errore 500

1mn lettura

Come visualizzare i file di log di Apache e PHP su cPanel

0mn lettura

Come si corregge un errore 403 Forbidden su cPanel?

0mn lettura

Come si corregge un errore 404 su cPanel?


Fate una domanda al team LWS e alla sua comunità