Il problema della “Programmazione Mancante” (o Missing Schedule, nella versione in inglese), la simpatica scritta rossa che compare quando un articolo programmato supera l’ora di pubblicazione (senza però essere, di fatto, pubblicato) è uno dei problemi più diffusi tra gli utenti WordPress. Ho deciso di parlarne qui principalmente per due motivi:
- ho avuto a che fare in prima persona (praticamente fino a ieri sera) con questo simpatico problemino;
- il Programmazione Mancante è sintomo di un problema abbastanza serio: i job di sceduling vengono gestiti da un demone di sistema detto cron, a sua volta integrato in cron attraverso il file wp-cron.php. Se gli articoli programmati saltano, quindi, inequivocabilmente il file wp-cron.php ha qualche problema. Occhio: cron non gestisce soltanto gli articoli, ma anche altre questioni come la rigenerazione della sitemap, la sincronizzazione dei commenti, la scansione di pingback e trackback, i ping e via dicendo. Un cron difettoso, quindi, può limitarvi in parecchie cosette.
La domanda a questo punto è d’obbligo: cosa fa bloccare/tiene occupato il cron? Questo articolo cercherà di dare qualche risposta, oltre che offrire qualche soluzione per risolvere il problema.
Innanzitutto vediamo un po’ se, in effetti, il nostro wp-cron funziona male: apriamo il browser e digitiamo l’indirizzo http://www.ilnostroblog.com/wp-cron.php . Aspettate che la pagina smetta di caricare: se vi ritroverete faccia a faccia con una pagina bianca, o con un “200 OK” allora fate una telefonata al vostro provider chiedendogli di aggiornare l’ora del server. Se invece dovesse apparirvi qualsiasi altra cosa (ad esempio un 500 – errore del server – o, peggio ancora, un 504 – timeout)… allora state sicuri che qualcosa non va nel cron.
Per risolvere il problema procederò per gradi: andate avanti al passaggio successivo soltanto se quello precedente non ha risolto il vostro problema.
Ricordate: prima di procedere leggete i logs del vostro server, che spesso vi indirizzano a soluzioni valide senza perdere tempo prezioso (messo che il service provider lo permetta… sigh). Inoltre, prima di continuare, fate un backup di dati e database… perchè non si può mai sapere!
Passaggio 0: controlliamo i permessi di wp-cron.php
Passaggio 1: controlliamo i plugin
Qualora il problema non si risolva… è necessario procedere al passo successivo.