Il vostro sito WordPress va spesso in timeout?
Un controllo dei log si sistema restituisce numerosi timeout, ovvero qualcosa simile a questo?
[Mon Jun 19 09:43:23.670502 2017] [:warn] [pid 20156] [client 95.241.64.39:50480] Timeout waiting for output from CGI script /home/user/public_html/dominio.com/index.php [Mon Jun 19 09:47:45.745524 2017] [:warn] [pid 32111] [client 95.241.64.39:59112] Timeout waiting for output from CGI script /home/user/public_html/dominio.com/index.php [Mon Jun 19 09:48:33.716519 2017] [:warn] [pid 38004] [client 95.241.64.39:36636] Timeout waiting for output from CGI script /home/user/public_html/dominio.com/index.php, referer: https://www.bing.com/ [Mon Jun 19 09:48:45.739520 2017] [:warn] [pid 37948] [client 95.241.64.39:38586] Timeout waiting for output from CGI script /home/user/public_html/dominio.com/index.php, referer: https://www.bing.com/ [Mon Jun 19 09:51:07.685518 2017] [:warn] [pid 38000] [client 151.38.157.199:56568] Timeout waiting for output from CGI script /home/user/public_html/dominio.com/index.php, referer: https://www.google.it/ [Mon Jun 19 09:51:58.182502 2017] [:warn] [pid 41838] [client 151.38.157.199:35142] Timeout waiting for output from CGI script /home/user/public_html/dominio.com/index.php, referer: https://www.google.it/
Come si vede, lo script più eseguito è index.php, perché tutte le richieste verso il sito WP vengono instradate tramite il file index.php.
WordPress utilizza un file chiamato wp-cron.php come un processo cron virtuale, o un compito pianificato, per automatizzare processi si sistema come la pubblicazione di messaggi pianificati, il controllo degli aggiornamenti di plugin o di temi, l’invio di notifiche e-mail e altro ancora.
Per impostazione predefinita WordPress è impostato per chiamare wp-cron.php ogni volta che qualcuno visita il sito, quando è presente un’attività pianificata. Per chiedere in pratica: “È ora di fare ancora qualcosa?”.
Nei siti a basso traffico questo è perfetto, ma quando i visitatori cominciano ad incrementare può essere molto inefficiente e potrebbe portare a problemi di utilizzo delle risorse del server e rendere più lento il sito web.
Sarebbe opportuno quindi prendere in considerazione la disabilitazione del wp-cron.php nativo e impostare un vero e proprio cronjob.
Se utilizzate cPanel c’è una sezione specifica > Cron jobs.
La disabilitazione del wp-cron.php nativo avviene modificando il file wp-config.php con la semplice aggiunta di questa riga:
define('DISABLE_WP_CRON', true);
Successivamente collegatevi a cPanel -> Advanced -> Cron jobs e create un nuovo processo:
/usr/local/bin/php /home/user/public_html/wp-cron.php
Sostituite “user” con il vostro utente e verificate che il percorso di wp-cron.php coincida con l’effettiva posizione sul server.
Vi consigliamo di impostare l’esecuzione del cronjob ogni 30 minuti, compilando i menu a tendina come indicato nella figura:
Analogamente, se utilizzate un altro pannello (ad esempio Plesk), dovrete sempre cercare la sezione “cronjob” per impostare stringa di esecuzione e frequenza.
Alla fine verificate osservando i log che il traffico sia stato ridimensionato e che il sito abbia riacquistato velocità.