Categorie
WordPress

Errore 500 WordPress: tutte le possibile cause e soluzioni

Avere un errore 500 in WordPress rende il tuo sito inaccessibile, causando una perdita al tuo business.
Le possibile cause di questo errore possono essere molteplici, in questo articolo analizzeremo le più comuni.

Cosa è un errore 500?

Quando visiti un sito web, il tuo browser invia una richiesta al server che ospita il sito.

Il server riceve la richiesta, la elabora e genera una risposta. Tale risposta include un codice di stato, chiamato HTTP status code.
Se questo codice è 200, vuol dire che la richiesta è stata elaborata con successo. Se invece questo codice è del tipo 5xx (500, 501, 502, 503… etc), allora vuol dire che il server ha avuto dei problemi nell’elaborare la richiesta.

Quando il codice di risposta è del tipo 5xx, nel corpo della risposta viene incluso un messaggio simile ad uno di questi:

  • HTTP 500 – Internal Server Error
  • 500 Internal Server Error
  • The website cannot display the page – HTTP 500.
  • Is currently unable to handle this request. HTTP ERROR 500.
  • 500 Internal Server Error. Sorry something went wrong.
  • Internal Server Error
  • HTTP 500

Per questo motivo, è importare effettuare il debug in WordPress, per capire cosa stia causando l’errore.

Come effettuare debug in WordPress

WordPress ha delle funzionalità per poter eseguire il debug di errori server-side.
Queste funzionalità potrebbero fornire le informazioni necessarie per capire quale sia la causa dell’errore.
Per poter attivare tali funzionalità, è necessario operare delle modifiche al file wp-config.php posto nella home del sito.

Come attivare WP_DEBUG

WP_DEBUG è una costante PHP che può essere utilizzata per abilitare la modalità di debug di WordPress.
Per impostare WP_DEBUG è necessario inserire nel file wp-config.php il seguente codice

define( 'WP_DEBUG', true );

Se il valore di WP_DEBUG non è definito, WordPress assume che sia falso.
Quando WP_DEBUG è impostato a true, WordPress dovrebbe mostrare tutti gli errori, i notices ed i warnings di PHP.
Per questo motivo attivare WP_DEBUG è la prima azione da compiere per capire le possibile cause di un errore 500 in WordPress.

Come attivare i logs di WordPress

Per attivare i logs di WordPress è necessario che WP_DEBUG sia impostato a true, quindi è necessario definire il valore della costante WP_DEBUG_LOG.

Il valore di tale costante può essere impostata a true, oppure uguale ad un percorso in cui PHP abbia i permessi di scrittura.
Nel primo caso, quindi è necessario inserire nel file wp-config.php

define( 'WP_DEBUG_LOG', true );

mentre nel secondo

define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );

Se WP_DEBUG_LOG è impostata a true, i logs verranno salvati nel percorso /wp-content/debug.log

Non mostrare gli avvisi di WordPress, ma salvarli nei logs

Per poter ottenere questo risultato, è necessario che WP_DEBUG sia attivo, che WP_DEBUG_LOG non sia false.

Quindi, è necessario inserire nel file wp-config.php

define( 'WP_DEBUG_DISPLAY', false );

Qualcosa non funziona come previsto nel debug in WordPress?

PHP ha delle direttive globali (php.ini) che possono interferire con il funzionamento delle costanti di debug di WordPress. Ad esempio, è possibile che display_errors e log_errors interferiscano con WP_DEBUG_DISPLAY e WP_DEBUG_LOG.

Quindi, se non volessi mostrare gli errori ai visitatori del sito, ma volessi che questi vengano inseriti nel file di log, e avessi impostato WP_DEBUG, WP_DEBUG_LOG e WP_DEBUG_DISPLAY opportunamente, ma senza aver successo, potresti provare ad inserire nel file wp-config.php

ini_set( 'display_errors', 0 );
ini_set( 'log_errors', 1 );

Errore 500 in WordPress, quando gli strumenti di debug non aiutano

Ci sono dei casi in cui, nonostante gli strumenti di debug messi a disposizione da WordPress, non riusciamo ad ottenere informazioni riguardo all’errore 500 che stiamo ottenendo.

Errori nel file .htaccess

Il file .htaccess è un file di configurazione di Apache, il server HTTP più usato al mondo, oltre che ad essere quello più comune per le installazioni di WordPress.

WordPress utilizza questo file per implementare diverse funzionalità (pretty permalinks, plugin di caching, redirect da sito http a https e altri ancora).
Questo file può essere oggetto di modifiche sia da parte di WordPress (Core o Plugins) che da parte di software per la gestione di hosting, come cPanel, Plesk o Site Tools di Siteground.

E’ quindi possibile che la disinstallazione / aggiornamento di un plugin, o la migrazione da un servizio di hosting ad un altro abbia reso il file .htaccess non più valido.
Quindi potrebbe essere necessario sovrascriverne il contenuto, inserendo solo ciò che è necessario per funzionamento base di WordPress, che è specificato a questa pagina.

Problemi con la versione di PHP

Se ci sono problemi con il supporto al codice scritto, l’azione migliore da compiere è usare la versione di PHP raccomandata da WordPress. Se questo non dovesse essere sufficiente, si potrebbe provare ad usarne una leggermente più vecchia (ad esempio, al momento della scrittura di questo articolo, la versione raccomandata da WordPress è la 7.4 o maggiore, quindi si potrebbe optare per usare la 7.0).

Perché questa scelta? Perché un plugin attivo non più mantenuto potrebbe contenere codice che era deprecato nella versione 7.0, che in seguito ha subito la rimozione del supporto nelle versioni di PHP successive.

Hai bisogno di un servizio di hosting veloce ed affidabile?

Scopri ora

Seguimi su