La guida definitiva per la risoluzione di 500 errori interni del server e pagine bianche vuote in WordPress
Annuncio pubblicitario
Il 500 Internal Server Error è la rovina più inutile degli utenti di WordPress in tutto il mondo. È un messaggio di errore generale che significa precisamente: qualcosa da qualche parte è andato storto. Ancora peggio, il tuo sito WordPress potrebbe non presentare alcun errore e mostrare solo una pagina bianca vuota.
Quindi, come puoi capire esattamente cosa c'è che non va e risolverlo?
Primo: non farti prendere dal panico, perché di solito è una soluzione semplice! Quindi: segui questo processo di debug e il tuo errore interno del server WordPress verrà risolto in pochissimo tempo.
I plugin di WordPress stanno causando l'errore 500?
Se hai appena installato un nuovo plug-in o se il tuo sito mostra un errore 500 dopo un aggiornamento principale di WordPress, la causa più probabile è un plug-in incompatibile. Ci sono molte ragioni per cui un plugin può essere rotto:
- WordPress potrebbe aver rimosso alcune funzioni principali utilizzate dal plugin.
- Potrebbe essere stato codificato per una vecchia versione di PHP e non è stato aggiornato da anni.
- Potrebbe essere semplicemente codificato in modo errato, ad esempio facendo riferimento ai nomi di database predefiniti anziché utilizzare i prefissi. A volte siamo tutti colpevoli di programmazione pigra!
Identificare il plug-in è facile se ne hai appena installato uno e l'errore è appena emerso. Ma come si può disabilitare il plugin se l'area di amministrazione è inaccessibile? E se non sapessi nemmeno quale plugin ha causato l'errore? Avrai bisogno dell'accesso FTP in entrambi i casi, ma funzionerà bene anche un file manager basato su web di CPanel o Plesk.
Soluzione:
Sai esattamente quale plugin è rotto? Trova il plugin ed eliminalo dalla cartella wp-content / plugins / . Ora dovresti essere in grado di accedere di nuovo. Trova un'alternativa per qualsiasi funzionalità tu voglia.
Se non sei sicuro di quale plugin abbia causato l'errore, dovresti rinominare l'intera cartella wp-content / plugins / . Posiziona un trattino basso (" _ ") davanti, quindi si chiama _plugins .
Rinominando la cartella, si disattiva in modo efficace tutti i plugin contemporaneamente. Ora dovresti essere in grado di accedere nuovamente, ma verrai accolto da un elenco di messaggi di errore di WordPress che dice "Il plug-in Somet.php è stato disattivato a causa di un errore: il file del plug-in non esiste."
Non preoccuparti, non hai perso alcuna impostazione. Le impostazioni dei plug-in sono archiviate nel database e la maggior parte dei plug-in li troverà nuovamente al momento della riattivazione.
Quindi, rinominare nuovamente la cartella, rimuovendo il carattere di sottolineatura. Saranno tutti elencati nella tua pagina Plugin, ma in uno stato disattivato. Ora puoi riattivarli uno a uno finché non trovi il colpevole.
Quando il sito si arresta di nuovo in modo anomalo, ripeti la procedura, ma questa volta non riattivare il plug-in rotto!
500 Errore interno del server: tema incompatibile
La disabilitazione dei plugin non ha aiutato? Quindi potrebbe essere qualcosa a che fare con il tuo tema. Proprio come i plugin, puoi disabilitare forzatamente il tema attivo semplicemente rinominando la sua cartella, che troverai nella directory wp-content / themes / .
Se non riesci ancora ad accedere all'area di amministrazione dopo aver provato a rinominare sia i plug-in che il tema corrente, dovresti continuare con ulteriori passaggi. Se riesci ad accedere, WordPress ti avviserà che è tornato a un tema predefinito. A questo punto, puoi trovare un nuovo tema, contattare lo sviluppatore del tema per assistenza o provare a risolverlo da solo.
Per risolvere il problema da solo o per fornire ulteriori spiegazioni allo sviluppatore, vedere la sezione successiva Abilitazione della modalità debug di WordPress .
500 Errore interno del server: file .htaccess errato
Se la disattivazione dei plugin e del tema non ha ottenuto nulla, è possibile che il tuo file .htaccess sia stato danneggiato in qualche modo. Questo è in genere il caso se è ancora possibile accedere all'area di amministrazione del sito, ma il front-end non funziona correttamente.
Il file .htaccess gestisce la conversione dei permalink (belle versioni di un URL come / my-blog-post ), nello brutto schema URL interno di WordPress (quello che ottieni di default, che assomiglia a /? P = 12345). È una parte fondamentale di WordPress, ma a volte i plug-in possono rovinarlo.
Soluzione:
Ancora una volta, vai al tuo client FTP o file manager. Rinomina il file .htaccess nella radice della directory di installazione di WordPress in qualcosa come .htaccess_old . Se non riesci effettivamente a vedere il file lì, devi abilitare la visualizzazione di file nascosti, il metodo esatto per farlo varierà in base al tuo client FTP.
Il periodo all'inizio del nome file è un modo per dire "nascondi questo file" in Linux e altri sistemi simili a UNIX.
Dopo aver rinominato l'attuale .htaccess, torna all'area di amministrazione di WordPress, quindi vai su Impostazioni> Permalink e, senza apportare modifiche, fai clic su Salva. Ciò genererà automaticamente una nuova versione funzionante del file.
Se hai apportato modifiche al file manualmente, queste andranno perse (ma non dovresti comunque modificare il file manualmente).
Abilita la modalità debug di WordPress per tracciare gli errori
Possiamo abilitare un registro di debug all'interno della configurazione di WordPress, che potrebbe fornire un indizio sul problema esatto, ma a questo punto sei da solo. Dovrai capire come risolverlo, che richiederà abilità di codifica.
Per abilitare il registro di debug, apri wp-config.php, che troverai nella directory principale della tua installazione di WordPress. Fai molta attenzione a modificare questo file: può essere una buona idea fare prima una copia che puoi ripristinare in caso di modifiche indesiderate.
Trova la riga che dice:
define('WP_DEBUG', false);
Se il tuo sito non viene visitato di frequente e non ti dispiace che i messaggi di errore vengano visualizzati da tutti, cambia la parola da falso a vero . I messaggi di errore verranno ora visualizzati quando si carica il sito.
Se preferisci mantenere privati i messaggi di errore, commenta quella riga digitando // all'inizio, quindi incolla quanto segue:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0);
Ciò inizierà a inviare errori a un file nella cartella wp-content chiamato error.log . Se aggiorni il client FTP e non vedi nulla dopo circa un minuto, è possibile che WordPress non disponga dell'autorizzazione per creare il file. Creare manualmente un nuovo file error.log e dargli il permesso 666.
Attenzione: questo file continuerà a crescere fino a quando non rimuoverai quelle linee dalla tua configurazione. Non dimenticare di decommentare anche la linea originale. Leggi il file in qualsiasi editor di testo e verifica la presenza di errori PHP critici.
Nell'esempio, vedo un sacco di avvisi PHP sul codice deprecato, ma questi in realtà non rompono un sito.
500 Errore interno del server: configurazione errata del server
Eseguire il tuo Virtual Private Server non è facile. Una volta mi trovavo di fronte a un caso misterioso di circa la metà di tutti i caricamenti di pagina che mostravano un errore 500, ma senza pattern riconoscibili e senza indizi nei log degli errori del server. L'attivazione dei log di debug di WordPress non ha mostrato nulla di ovvio: molti avvisi e deprecazioni PHP, ma nulla di critico.
Alla fine, mi sono reso conto di aver installato la cache APC sul server il fine settimana precedente, da utilizzare con W3 Total Cache per velocizzare il sito. La disinstallazione che ha completamente eliminato i 500 errori.
Il mio punto è che l'errore 500 potrebbe essere semplicemente una combinazione di configurazioni del server che presentano un'incompatibilità. Questo è improbabile se stai usando servizi gestiti, ma con il tuo Virtual Private Server (che cos'è un server virtuale e perché potresti volerne uno Che cos'è un server virtuale e cosa puoi fare con uno? Che cos'è un server virtuale E cosa puoi fare con uno? Macchine virtuali e server virtuali: quali sono e in che modo differiscono? Leggi di più) sei responsabile di assicurarti che tutto funzioni insieme e questo è più difficile di quanto sembri.
Il tuo sito ha esaurito la memoria?
Su un host condiviso, potresti scoprire che il limite di memoria PHP è stato raggiunto: WooCommerce, forum o plug-in relativi post potrebbero causare questo a causa della loro complessità. Se sei fortunato vedrai un messaggio di errore come "Errore irreversibile: dimensione della memoria consentita di xxx byte esauriti" ma non sempre.
Puoi risolvere questo problema aggiungendo la seguente riga al tuo wp-config.php :
define('WP_MEMORY_LIMIT', '64M');
La maggior parte degli host condivisi non ti consente di aumentare il limite di memoria, ma ottieni quello che ti viene dato. Potrebbe essere il momento di prendere in considerazione altre forme di hosting. Spiegazione delle varie forme di hosting di siti Web [Spiegazione della tecnologia] Spiegazione di varie forme di hosting di siti Web [Spiegazione della tecnologia] Altre informazioni.
500 errore corretto? Ora esegui backup quotidianamente!
La migliore difesa contro qualsiasi tipo di errore critico di WordPress è mantenere backup giornalieri e backup manuali prima di ogni azione significativa (come un aggiornamento di WordPress di base). Inoltre, tieni aggiornati plugin e temi: le nuove versioni di WordPress spesso rompono il vecchio codice.
Può essere spaventoso quando il tuo sito si rompe, specialmente se è una fonte di reddito per te e non solo un hobby. Seguendo questa guida ed essendo metodico, dovresti riaverlo presto.
Prendi in considerazione l'aggiornamento a un servizio di hosting WordPress gestito che gestisce i backup e le ottimizzazioni per te, rendendo tali errori inesistenti. Ti consigliamo InMotion Hosting (usa questo link per ottenere il 38% di sconto) e Bluehost (usa questo link per ottenere il 25% di sconto).
Ulteriori informazioni su: Wordpress, plugin di Wordpress.