Dam Company

WordPress bloccato in modalità manutenzione: come risolvere?

WordPress entra in modalità manutenzione durante gli aggiornamenti di software, temi e plugin, questo per evitare che eventuali interazioni con il sistema possano creare problemi.

La procedura di aggiornamento di WordPress avviene in quattro fasi:

  1. Attivazione della modalità di manutenzione;
  2. Scaricamento dei file di aggiornamento;
  3. Applicazione degli aggiornamenti;
  4. Disattivazione della modalità di manutenzione, dopo la quale il sito torna attivo.

Può succedere però che durante l’aggiornamento, magari per errore, si ricarichi la pagina e WordPress rimanga bloccato costantemente in manutenzione. In questo caso è probabile che l’aggiornamento non sia andato a buon fine. Per ripristinare la situazione è necessario intervenire manualmente.

 

La procedura di sblocco

Bisogna accedere ai files del sito tramite FTP o pannello di controllo, da li individuare il file .maintenance e cancellarlo.

Se il file non è visibile – come succede, ad esempio, nel caso in cui si utilizza il File Manager di cPanel – si dovrà accedere alle impostazioni del File Manager e attivare la visualizzazione dei file nascosti.
A questo punto, WordPress torna a funzionare.

Delle volte, però, può succedere che un aggiornamento non andato a buon fine causi malfunzionamenti e problemi di visualizzazione del sito. Per individuare il problema e risolverlo si può far affidamento al debug di WordPress, senza dover ricorrere a strumenti esterni o plugin.

Il debug si attiva direttamente nel file di configurazione di WordPress wp.config.php.

Scorrendo il file di configurazione si arriva all’opzione WP_DEBUG, di default impostato su false. Per attivarlo cambiamo l’opzione su true:

define(‘WP_DEBUG’, true);

A questo punto tutti gli errori, avvertimenti e notifiche di rilievo vengono scritti nelle pagine del sito in cui si manifestano indicando dove intervenire per risolverli.

Risolto il problema bisogna ricordare di disattivare il debug nel file di configurazione di WordPress.

 

Come mettere temporaneamente in manutenzione WordPress

Se, invece, si ha la necessità di far risultare il sito in manutenzione si può procedere istallando un plugin. Ne esistono diversi tra i quali scegliere, la lista completa si trova nella repository dei plugin di WordPress.

 

Modalità di manutenzione personalizzata

Se si vuole personalizzare la finestra di manutenzione di WordPress basta creare un file maintenance.php dentro la cartella wp-content di WordPress con aspetti e contenuti che si preferiscono. In questo modo la modalità di manutenzione di WordPress assumerà l’aspetto desiderato durante ogni aggiornamento.

Come ottimizzare il database di WordPress

Il database di WordPress memorizza tutte le informazioni più importanti di un sito web. Nel tempo questo archivio di informazioni può riempirsi e di conseguenza rallentare il sito. È importante quindi fare manutenzione al fine di assicurare la migliore prestazione possibile.

Ci sono diversi metodi che si possono utilizzare per ottimizzare il database di WordPress, il primo su tutti è l’ottimizzazione manuale delle tabelle del database.

Questa procedura si avvale dello strumento PhpMyAdmin per accedere database WordPress del sito web, dando la possibilità di visualizzare, modificare ed eliminare tabelle.

È il metodo che conferisce il maggior controllo possibile sul processo di pulizia.

Prima di iniziare le modifiche è consigliabile eseguire il backup del database per assicurarsi di non perdere file importanti per errore.

Con la maggior parte dei provider di hosting si può accedere a PhpMyAdmin tramite cPanel.

Scorrendo fino alla sezione DATABASE e PhpMyAdmin si raggiunge il database del sito WordPress, nella parte inferiore dell’elenco bisognerà selezionare la casella SELEZIONA TUTTO > OTTIMIZZA TABELLA dal menu che appare. Al termine del processo si riceverà un messaggio di conferma.

Il secondo metodo per ottimizzare il database di WordPress è quello di affidarsi ad un plugin, una soluzione che facilita e riduce il lavoro, sollevandoci dall’incarico di cercare manualmente tra le tabelle con PhpMyAdmin.

Tra i plugin migliori c’è WP-Optimize che ottimizza il database tramite:

  • L’eliminazione dei dati non necessari come commenti spam e opzioni transitorie;
  • La compattazione e deframmentazione di tabelle di database;
  • La pulizia del database su base programmata o automatizzata;
  • La creazione di backup dei dati di pre-ottimizzazione;
  • La visualizzazione delle statistiche sulla pulizia del database.

Una volta istallato e attivato nella dashboard di WordPress, attraverso DATABASE si arriva alla pagina OTTIMIZZAZIONI, da dove si possono selezionare elementi specifici ed eseguire l’ottimizzazione. Stesso vale per la scheda TABELLE, che possiamo selezionare e rimuovere.

Questo strumento ci informerà su quali plugin sono utilizzati gli elementi selezionati in modo da sapere subito quali delle funzioni del sito saranno influenzate dalla modifica.

Infine dalla scheda IMPOSTAZIONI si possono pianificare le pulizie del database, scegliendo la frequenza e i dati che possono essere eliminati.

Nella procedura di pulizia capita di rimuovere immagini, commenti e contenuti non aggiornati, ma questi elementi non scompaiono immediatamente dal database, rimangono nel cestino del sito web per 30 giorni.

Se si eliminano regolarmente molti elementi il consiglio è quello di svuotare il cestino frequentemente.

In alternativa si può facilmente ridurre la durata di permanenza di questi elementi nel cestino del database, modificando il file wp-config-php con l’editor di testo, aggiungendo

Define(‘EMPTY_TRASH_DAYS’,X)

Sostituendo alla “X” il numero di giorni che vogliamo trascorrano prima che gli elementi vengano definitivamente rimossi dal database di WordPress.

Un terzo metodo di ottimizzazione è la rimozione delle revisioni dei post. Il database WordPress memorizza le revisioni di tutti gli articoli e pagine, una raccolta utile quando si vogliono ripristinare le versioni precedenti dei contenuti o tener traccia delle modifiche apportate.

Queste revisioni, però, possono occupare molto spazio, molti post e pagine ne contengono centinaia, per questo è bene considerare di limitare il numero di revisioni dei post che WordPress salva, assicurandosi che eventuali post o pagine non riempiano il database.

Per far ciò bisognerà aprire il file wp-config.php, e inserire il codice

define(‘WP_POST_REVISIONS’,X)

sostituendo alla X il numero di revisioni dei post che si desiderano salvare.

In alternativa si possono disabilitare completamente le revisioni dei post aggiungendo

define(‘WP_POST_REVISIONS’,false)

Va considerato però il rischio di commettere errori in futuro senza la possibilità di fare affidamento sulle revisioni.

Se, invece, si vogliono eliminare quelle che sono già nel database è possibile utilizzare un plugin come Optimize Database after Deleting Revisions, che consente di eliminare tutte le revisioni o mantenere un numero specifico, oltre a permettere di eseguire ulteriori tipi di pulizia del database come l’eliminazione di commenti spam e tag inutilizzati.

Proprio l’eliminazione di commenti spam e tag inutilizzati è un’altra modalità di ottimizzazione del database di WordPress.

I commenti spam sono messaggi lasciati sui post del blog con link che riconducono ad altri siti web o spam.

Se WordPress o uno dei plugin istallati sospetta che un commento sia spam contrassegnerà l’elemento per l’approvazione, archiviandolo in COMMENTI > SPAM nella dashboard.

Dopo trenta giorni questi verranno automaticamente cancellati ma nel frattempo occuperanno spazio nel database.

Si possono facilmente eliminare selezionandoli e facendo clic su SVUOTA SPAM, o aprendo PhpMyAdmin ed eseguendo il comando

DELETE FROM wp_comments WERE comment_approved = ‘spam’

I tag possono aiutare ad organizzare il contenuto di sito web, reindirizzando i visitatori del sito per trovare articoli correlati, facilitando la navigazione e l’esperienza utente complessiva (UX).

È possibile però che alcuni tag siano inutilizzati, se per esempio sono stati modificati nel tempo.

Questi occupano spazio non necessario nel database e potrebbe essere utile eliminarli.

Connettendoci al database con PhpMyAdmin, bisognerà eseguire il comando

SELECT *

FROM wp_terms wterms INNER JOIN wp_term_taxonomy wttax ON wterms.term_id = wttax.term_id

WHERE wttax.taxonomy =  ‘post_tag’ AND wttax.count =0;

sostituendo “wp_” con il prefisso corrispondente del database comparirà un elenco di tag ridondanti sul sito web, che si possono eliminare eseguendo il comando

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );

DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

Un ultimo modo per ottimizzare il database di WordPress è eliminando pingback e trackback.

Quando il sito web include URL di altri siti questo invia una notifica automatica al server, chiamata pingback, che notifica al sito citato il link al contenuto.

Pingback e trackback sono utilizzati da alcuni utenti per inviare spam ai loro contenuti quindi si potrebbero avere migliaia di siti che collegati al proprio, occupando spazio non necessario nel database.

Si può decidere di disattivarli entrambi, attraverso IMPOSTAZIONI > DISCUSSIONE, disattivando le voci:

  • Tentare di notificare tutti i blog che hanno un link nell’articolo;
  • Permetti i link di notifica da altri blog (pingback e trackback) per i nuovi articoli.

Si possono eliminare i trackback e pingback esistenti accedendo al database tramite PhpMyAdmin ed eseguendo il comando

UPTADE wp_posta SET ping_status= “closed”;

Come ripristinare un sito web hackerato

I campanelli di allarme che ci avvertono che un sito web è stato hackerato sono vari ma possono passare inosservati, anche in base al tipo di attacco. Tra questi abbiamo:

  • Avvisi sull’hacking da browser e motori di ricerca;
  • Link che reindirizzano a siti sospetti;
  • Volumi elevati di traffico da altri paesi;
  • Pagine danneggiate;
  • Tempo di caricamento prolungato;
  • Avvisi sulla blocklist di Google;
  • Snippet di codice casuali che appaiono nell’header o nel footer.

Se si sospetta un attacco esistono diversi checker di siti web, come Sucuri siteChek, DeHashed e Have I Been Pwned? che si possono usare per avere conferma.

Cosa fare quando si ha la certezza che il sito sia stato attaccato

Il primo passaggio da compiere una volta che si è certi di aver subito un attacco hacker sul sito web è modificare tutte le password e verificare l’accesso.

Gli hacker tentano di indovinare la password dell’account amministratore utilizzando combinazioni di lettere e numeri, la modifica di tutte le password revocherà l’accesso al sito e impedirà loro di compromettere altri account.

Bisognerà assicurarsi di reimpostare la password per:

  • Account hosting;
  • Account FTP;
  • Account amministratore del content management system (CMS);
  • Database, tramite il file di connessione al database;
  • Account di posta elettronica associati al sito hackerato.
  • Altri account che utilizzano le stesse credenziali di accesso.

Se il sito hackerato è ospitato su WordPress si dovranno controllare i ruoli utente e le autorizzazioni esistenti accedendo a Utenti nella dashboard di amministrazione, seguendo la stessa procedura sulle piattaforme che concedono l’accesso a più utenti, come il pannello di controllo dell’hosting e il sistema FTP.

Buona parte dei tentativi di hacking si verifica dopo che un sito web subisce modifiche che creano nuove vulnerabilità da sfruttare. Tracciando le azioni si può risalire all’origine dei problemi di sicurezza: bisognerà cercare tra i log web un improvviso picco di traffico e ispezionare i log degli accessi e i registri degli errori tramite il pannello di controllo dell’hosting, identificando eventuali attività sospette o errori che hanno avuto luogo entro il periodo di tempo sospetto.

Dopo essere risaliti al momento in cui si è verificato l’hacking si esamineranno tutte le modifiche apportate.

Se il sito web in questione viene eseguito su un hosting condiviso l’origine dei problemi di sicurezza potrebbe provenire da un altro sito che condivide il server. In questo caso gli attacchi informatici potrebbero prendere di mira anche il tuo account di hosting.

La maggior parte degli host web fornisce agli utenti l’accesso ai log web, consentendo di monitorare le visite. Se la registrazione dell’accesso al server è disabilitata per impostazione predefinita, contatta il provider di hosting o abilitala manualmente.

Controllare lo stato del sito web

Se Google rileva attività sospette su un sito web è probabile lo blocchi. Di conseguenza questo non verrà visualizzato nei risultati di ricerca per proteggere i visitatori.

Si può verificare se il sito finisce su Google Blocklist utilizzando Google Search Console. L’avviso appare nella sezione Sicurezza e azioni manuali > Problemi di sicurezza.

In alternativa si può utilizzare Google Safe Browsing, un tool che indica proprio se un sito sia o meno sicuro o Google Analytics, che darà conferma dell’effettivo blocco del sito se si registra un calo di traffico improvviso.

Oltre che su Google Blocklist il sito potrebbe apparire anche nel database anti-spam. I provider di servizi internet, di posta elettronica e le piattaforme anti-spam utilizzano gli elenchi di blocco per impedire che le email di spam entrino nei loro sistemi. Le email provenienti dagli indirizzi IP elencati in questa blocklist verranno bloccate o finiranno nella cartella spam.

Si può verificare se il dominio è presente nell’elenco di blocco dello spam con strumenti di controllo dell’integrità del dominio come MXToolBox e Domain DNS Health Checker. Questi, oltre a fornire informazioni sullo stato del dominio, possono individuare problemi relativi al server web, di posta e al DNS.

Le vulnerabilità della sicurezza non sono sempre visibili agli amministratori, è consigliabile quindi utilizzare gli strumenti di scansione del sito web per ricontrollarlo, individuando eventuali vulnerabilità da risolvere.

Gli utenti di WordPress hanno accesso a dei plugin di sicurezza gratuiti e premium che possono scansionare i siti web alla ricerca di file hackerati, rilevando qualsiasi codice dannoso. Alcuni tra i più popolari sono:

  • Sucuri Security, che fornisce scansioni server e remote, azioni di sicurezza post-hacking e monitoraggio dell’integrità dei file;
  • BulletProof Security, che fornisce strumenti di correzione automatica della procedura guidata di configurazione, scanner di malware, monitoraggio degli accessi e forzatura di password complesse;
  • WPScan, che supporta la scansione di sicurezza pianificata per le vulnerabilità note del core, dei plugin e dei temi di WordPress.

Altri strumenti di scansione sono compatibili con altri CMS oltre a WordPress:

  • HostedScan Security, che esegue la scansione delle vulnerabilità su reti, server e siti web;
  • Intruder, uno scanner basato su cloud che supporta la scansione delle vulnerabilità interne, esterne e cloud;
  • Detectify, che offre monitoraggio e test automatizzati delle risorse supportati da una comunità di hacker etici;
  • Immuniweb, che fornisce vari test di sicurezza del sito web aderenti agli standard GDPR e PCI DSS;
  • SiteGuarding, che supporta il monitoraggio della blocklist dei motori di ricerca, la scansione quotidiana dei file, il monitoraggio delle modifiche ai file e il rilevamento e pulizia del malware.

In alternativa è possibile fare la scansione dei file e delle tabelle del database manualmente. Si può fare con software antivirus per Pc, come McAfee e ESET, o il programma antivirus integrato nel sistema operativo (Microsoft Defender per Windows e XProtect per Mac).

Si procede quindi:

  • Scaricando tutti i file tramite il pannello di controllo dell’hosting;
  • Eseguendo una scansione completa dei file con il software antivirus scelto;
  • Risolvendo i problemi rilevati;
  • Caricando i file del sito puliti sul server;
  • Ripulendo le tabelle del database tramite PhpMyAdmin.

Se i metodi precedenti risultano troppo dispendiosi in termini di tempo si può decidere di ripristinare il file backup del sito web. In questo modo si rimuoveranno tutti i dati e le modifiche apportate alla creazione del backup. Questa opzione è consigliabile solo nel caso di siti web che non subiscono modifiche frequenti, o che possono permettersi la perdita di alcuni dati.

L’ultimo passaggio dopo aver completato il ripristino è quello di scansionare il computer per assicurarsi che qualsiasi cosa abbia compromesso il sito web non comprometta anche il computer. Abbiamo nominato alcuni antivirus, in alternativa ci sono alcune soluzioni gratuite come:

  • Antivirus gratuito AVG;
  • Avast;
  • Avira gratis;
  • Kaspersky Security Cloud;
  • Malwarebytes.

Suggerimenti per proteggere il tuo sito da attacchi hacker

  • Evita i provider di hosting economici;
  • Rimuovi il software obsoleto che non ti serve più;
  • Usa password complesse;
  • Scansiona regolarmente il tuo sito web con un software di sicurezza affidabile;
  • Esegui backup regolari del tuo sito web;
  • Installa un certificato SSL;
  • Limita i tentativi di accesso;
  • Abilita l’autenticazione a due fattori.

Se non si hanno conoscenze tecniche potrebbe risultare difficile applicare i metodi appena descritti. In questo caso ci si può affidare a esperti di sicurezza informatica e rimozione di malware da WordPress.