Login WordPress non funziona: cause e rimedi

All’improvviso,a  volte, potrebbe capitare che il sito WordPress sia funzionante, magari sostenuto dalla cache o da altre diavolerie analoghe, ma il sito sia di fatto “In sola lettura”: in sostanza, non vi fa entrare via login con le solite credenziali, e tutto questo a volte senza dare neanche un vero e proprio messaggio di errore. Cosa fare se il login di WordPress non funziona? Ci sono vari casi da prendere in considerazione, come vedremo.

Escludete l’impossibile, in questi casi: in genere se non funziona il login di WordPress è (diciamo al 99%) un problema di database.

Problema: scadenza del database

Nel caso di hosting Aruba, ad esempio, mi è capitato un po’ di volte per conto di vari clienti, e dipende dal fatto che le scadenze dell’hosting del sito e del database sono diverse tra loro. Quindi capita che ad esempio il database sia scaduto e l’hosting no: rinnovate il servizio di DB, e risolverete il problema.

Problema: database corrotto

Questa è una delle circostanze più complicate da gestire: il database potrebbe essere corrotto, per cui se avete un backup semplicemente rimpiazzate il vecchio db con il nuovo. Se non lo avete, potete tentare un recovery del database MySQL, a vostro rischio e pericolo in questo caso perchè purtroppo, quando succede, non ci sono garanzie. La procedura di recovery cambia leggermente a seconda dell’errore MySQL, ma in genere si prova a fare un ripristino da MySQL. Se non dovesse funzionare una procedura orientativa di recupero è la seguente:

  1. Fate login via SSH, ed aprire il terminale di comando di MySQL (sarà richiesta la password del database che potete copiarvi dal file wp-config.php, ad esempio):
    mysql -uUsername -p
  2. Selezionate il nome del database corrotto (anche questo si trova nel wp-config nel caso di WordPress), per vederli tutti:
    show databases;
  3. mysqlcheck permette di effettuare un check e, con il parametro -r, di provare a riparare il db. Funziona sia con database MyISAM che InnoDB, ed è in genere un’esperienza abbastanza aleatoria nella mia esperienza: a volte ripara effettivamente, a volte no.
    mysqlcheck -r [database]

Un esempio di schermata di recovery MySQL da terminale è la seguente:

https://www.instagram.com/p/Bwm0txDjn2U/

Problema: database pieno

Per quanto il marketing tenda a farci dimenticare questo aspetto, lo spazio a disposizione su un hosting non è mai infinito: ha un limite, sempre, e se lo raggiungiamo ad esempio a livello di database può essere un problema. Il database pieno fa scattare in genere un particolare fallback (comportamento di “emergenza”, per così dire) da parte di WordPress, che impedisce il login nel sito e lo fa funzionare in sola lettura.

Per risolvere è sufficente, in questi casi:

  1. estendere lo spazio su DB (chiedere all’hosting, così come andrebbe fatto nel caso dei piani condivisi di Aruba)
  2. ottimizzare e pulire il DB

Problema: disco pieno

Questa è forse una delle cause più comuni di rottura del login: se WordPress non vi fa entrare nel sito, quello che bisogna verificare è che il disco non sia pieno. Io faccio così, in genere: come prima cosa verifico lo spazio libero da SSH con:

df -h

poi se il disco è pieno come in questo caso (100% spazio saturato, come potete vedere):

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.8G 9.8G 1.7G 100% /
udev 10M 0 10M 0% /dev
tmpfs 743M 81M 663M 11% /run
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup

cerco di riavviare MySQL, cosa che in questo caso non va:

service mysql restart

perchè appare ad esempio:

Jun 03 08:33:53 728kshd-vm mysql[29343]: /etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full! … failed!
Jun 03 08:33:53 728kshd-vm /etc/init.d/mysql[29362]: ERROR: The partition with /var/lib/mysql is too full!
Jun 03 08:33:53 728kshd-vm systemd[1]: mysql.service: control process exited, code=exited status=1
Jun 03 08:33:53 728kshd-vm systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.

Che cosa significa questo errore? Significa che MySQL non ha spazio per effettuare operazioni, e questo lo ha mandato in blocco. A questo punto quello che si fa, in pratica, è proprio liberare spazio su disco: per farlo basta cancellare i file di log troppo grossi, oppure cancellare i backup tipo quelli di Updraft che a volte restano nel disco senza che lo sappiamo. A volte anche alcuni plugin possono occupare troppo spazio, e le operazioni di cancellazione andrebbero fatte sempre in modo sicuro (prima di cancellare qualcosa, scarichiamocela in backup locale per sicurezza)

Dopo aver pulito e liberato lo spazio, che dovrebbe idealmente essere sempre di almeno il 10% della capienza, facciamo un bel

service mysql restart

e tutto dovrebbe tornare a funzionare come prima, login di WordPress incluso.

Questa offerta ti potrebbe interessare: VPS Keliweb – VM 3L
Guarda l'offerta
1 voto