Meno è meglio: fare ordine e risolvere i conflitti
Modulo 5: Temi e plugin · Tempo di lettura: 9 minuti
Obiettivo della lezione: Dopo questa lezione sarà in grado di fare ordine tra i plugin e di individuare e risolvere da solo un conflitto o una pagina bianca.
Concetti chiave: disattivare contro eliminare, codice inattivo, errore critico, modalità di ripristino (recovery mode), Salute del sito (Site Health), modalità di risoluzione dei problemi, rinominare la cartella del plugin, WP_DEBUG, WP_DEBUG_LOG, debug.log, log degli errori
Spegnere non significa buttare via
Nella sezione Plugin può disattivare o eliminare un plugin. La differenza:
- Disattivare: WordPress non carica più il plugin. Ma i file restano in
wp-content/plugins/, e spesso sono ancora richiamabili direttamente tramite il server web. Se c'è una falla in un file PHP isolato di quel plugin, quella falla rimane presente. Chi tenta intrusioni scansiona i file vulnerabili noti, non i plugin attivi. - Eliminare: i file vengono rimossi. Alcuni plugin, al momento dell'eliminazione, ripuliscono anche le loro impostazioni e tabelle nel database; altri le lasciano.
Se non usa più un plugin, lo elimini. La disattivazione serve solo temporaneamente (durante la ricerca di un problema). Lo stesso vale per i temi (lezione 2.4).
Fare ordine: un giro fisso
Esamini i Suoi plugin una volta al trimestre (lezione 9.4). Per ogni plugin:
- A cosa serve? Se non lo ricorda più, lo scopra. Spesso si scopre che un plugin è stato installato per una cosa specifica e poi non è mai stato rimosso.
- Viene ancora usato? Un plugin per slider mentre non c'è nessuno slider da nessuna parte, un plugin per moduli mentre la Sua pagina di contatto usa un modulo diverso.
- Si può fare a meno? WordPress, il tema o un altro plugin lo fanno già (lezione 5.3)?
- È ancora mantenuto? Ultimo aggiornamento, ancora presente nella directory dei plugin?
Faccia prima ordine in un sito di staging (lezione 8.3), oppure crei almeno un backup, ed elimini un plugin alla volta, in modo da sapere cosa è andato storto se qualcosa va storto. Attenzione agli shortcode: se elimina un plugin che forniva [formulier id="2"], quel testo rimarrà poi letteralmente visibile sulla Sua pagina.
Se qualcosa va storto: l'errore critico
Dopo un aggiornamento, un nuovo plugin o un aggiornamento di PHP, vede improvvisamente:
Si è verificato un errore critico sul sito web.oppure una pagina completamente bianca. Questo significa: PHP si è interrotto con un errore fatale prima che ci fosse una pagina (lezione 1.2). Nella maggior parte dei casi la causa è un plugin o un tema che non va d'accordo con qualcos'altro: un altro plugin, la nuova versione di WordPress, oppure la versione di PHP.
Dalla versione 5.2 di WordPress, in questo caso WordPress fa due cose:
- invia un'email all'indirizzo dell'amministratore con l'indicazione di quale plugin o tema ha causato l'errore, e un link speciale;
- con quel link accede alla modalità di ripristino (recovery mode): la Bacheca funziona, con il plugin che ha causato l'errore temporaneamente disattivato, così può aggiornarlo, sostituirlo o eliminarlo.
Per questo un indirizzo dell'amministratore che Lei legge davvero è così importante (lezione 2.2).
Cercare da soli: i passaggi
Non arriva nessuna email, oppure la modalità di ripristino non funziona? Ecco come trovarlo da soli.
1. Guardi nel log degli errori
L'errore si trova quasi sempre nel log degli errori del server web o di PHP. Con DirectAdmin lo trova tra i log del Suo dominio. Cerchi una riga con PHP Fatal error e l'orario del Suo tentativo:
PHP Fatal error: Uncaught Error: Call to undefined function create_function()
in /home/gebruiker/domains/example.com/public_html/wp-content/plugins/oude-slider/slider.php:42Il percorso Le indica chi è il colpevole: qui il plugin nella cartella oude-slider. Il resto della riga spiega il perché (qui: una funzione rimossa in PHP 8, lezione 8.4).
2. Attivi il log di debug (non il messaggio a schermo)
Se nel log degli errori non c'è nulla di utile, inserisca in wp-config.php (sopra "stop con la modifica"):
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );WordPress scriverà allora tutti gli errori in wp-content/debug.log, senza mostrarli ai visitatori. Non lasci mai questa impostazione attiva più a lungo del necessario: debug.log si trova in una cartella che il server web rende disponibile, e chi conosce l'indirizzo può leggerlo. Vi si trovano percorsi, a volte nomi utente e altre informazioni che aiutano chi tenta intrusioni. Dopo la ricerca, disattivi di nuovo l'impostazione ed elimini debug.log. Oppure faccia scrivere a WordPress il file di log fuori dalla cartella web indicando un percorso in WP_DEBUG_LOG (ad esempio '/home/gebruiker/logs/wp-debug.log', se il Suo hosting lo consente). Nella lezione 7.4 verifica che debug.log non sia pubblico.
3. Disattivare un plugin senza accedere alla Bacheca
Se non riesce ad accedere alla Bacheca, disattivi il plugin sospetto rinominando la sua cartella, tramite Gestione file o SFTP:
wp-content/plugins/oude-slider wordt wp-content/plugins/oude-slider-uitWordPress non troverà più il plugin e lo disattiverà. Se non sa quale sia, rinomini l'intera cartella plugins in plugins-uit: tutti i plugin verranno disattivati. Se a quel punto il sito funziona, crei una nuova cartella vuota plugins, ripristini i plugin uno alla volta e verifichi dopo ciascuno se l'errore si ripresenta. Per un tema vale lo stesso principio: rinomini la cartella del tema attivo e WordPress passerà a un tema predefinito, se è ancora presente (lezione 2.4).
4. Conflitti senza errore fatale
Non ogni problema è un errore critico. A volte una singola funzione non funziona: un pulsante non fa nulla, il modulo non invia, l'editor si carica a metà. In questo caso spesso è un conflitto tra due plugin o tra un plugin e il tema. Per questo è utile il plugin ufficiale Health Check & Troubleshooting: nella modalità di risoluzione dei problemi, disattiva tutti i plugin solo per la Sua sessione e passa a un tema predefinito, mentre i visitatori continuano a vedere il sito normale. Successivamente li riattiva uno alla volta finché il problema non si ripresenta.
Guardi anche nella console del Suo browser (F12): gli errori JavaScript spesso indicano il file, e quindi il plugin.
Salute del sito
Sotto Strumenti > Salute del sito, WordPress verifica autonomamente il Suo sito: versione di PHP obsoleta, plugin e temi non attivi, estensioni PHP mancanti, una REST API che non funziona, attività pianificate in ritardo. Nella scheda Informazioni si trovano tutti i dati della Sua installazione (versioni, percorsi, impostazioni PHP). Quella scheda può essere copiata e inviata quando chiede assistenza. La controlli dopo ogni modifica importante.
Riepilogo
- Disattivare lascia i file al loro posto; elimini i plugin e i temi che non usa.
- Faccia ordine ogni trimestre, un plugin alla volta, con un backup o in staging.
- In caso di errore critico, WordPress invia un'email con un link alla modalità di ripristino.
- Il log degli errori o
debug.logindica il percorso del colpevole; disattivi di nuovo il debug dopo la ricerca, perché altrimentidebug.logresta pubblico. - Senza accesso alla Bacheca, disattivi un plugin rinominando la sua cartella; i conflitti si cercano con la modalità di risoluzione dei problemi.
Quiz
Esercizio
Esercizio A5.4: Il Suo debug log non è pubblico? Inserisca l'indirizzo del Suo sito e dimostri con il codice fornito dall'esercizio che si tratta del Suo sito (un record TXT o un piccolo file). Il programma richiede /wp-content/debug.log: va bene se non esiste o viene rifiutato (404 o 403). Se il programma riceve un file in risposta, il risultato è rosso. Inoltre il programma conta quante diverse cartelle di plugin compaiono nell'HTML della Sua homepage (solo a titolo informativo).
Esercizio D5.4: Mettere in ordine l'elenco dei plugin. Crei un elenco di tutti i Suoi plugin (attivi e inattivi): nome, a cosa serve, se è ancora necessario (sì/no), un'alternativa senza plugin. Elimini (dopo un backup o in staging) i plugin non più necessari, uno alla volta, e verifichi dopo ogni eliminazione se il sito funziona ancora. Indichi quanti plugin aveva e quanti ne restano, e annoti se sono rimasti shortcode che ha dovuto ripulire.
Esercizio D5.4: Mettere in ordine l'elenco dei plugin
Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.
Il numero dopo è inferiore o uguale, e per ogni plugin rimasto c'è un motivo. I plugin inattivi vanno rimossi: anche il codice disattivato può contenere una falla.
Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.
Per saperne di più
Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.
- Guida DirectAdmin 18.1: Il mio sito web è bianco o restituisce un errore 500
- Errore 500 o "errore critico" sul Suo sito web (anche dopo un aggiornamento di WordPress)
- Guida DirectAdmin 14.6: Errori dopo un aggiornamento di PHP e come trovare il log degli errori
- Guida DirectAdmin 17.2: Riepilogo sito e log: il log degli errori e il log degli accessi
- Come posso eseguire il debug di PHP senza modificare il php.ini?
- Debuggen in WordPress (developer.wordpress.org, Inglese): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
