Vota questo articolo :
2,5/5 | 2 parere
Questo articolo vi è stato utile ?
Sì
No
Vous avez noté 0 étoile(s)
Sommaire
Procédure
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.
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:
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.
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:
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:
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 .
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à.
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:
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:
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:
È 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à.
È 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:
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:
L'errore visibile quando si accede all'URL sarà il seguente:
2. L'errore"Parse error: syntax error, unexpected end of file" indica che sembra mancare qualcosa alla fine del file.
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.
In questo codice, manca il backslash sulla parola"error", come nel codice seguente, per farlo funzionare:
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:
Questo errore spesso indica che una funzione non è stata definita, come nel codice seguente:
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:
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:
È possibile evitare questo errore modificando il nome della funzione ridefinita:
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:
È 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:
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 :
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:
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 ?
Sì
No
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?