X

Como sincronizar la hora de WordPress con el reloj atómico [Linux]

La idea es utilizar la consola de comandos para hacerlo, ya que lo he pensado para hacerlo sobre un servidor web en Linux que es la plataforma más habitual para este CMS. En el artículo te quiero enseñar cómo poner en hora un WordPress desde la consola de comandos.

Desgraciadamente en algunos casos en los que tienes contratado un hospedaje solo con un espaico web no te va a ser posible, ya que necesitas tener acceso al sistema operativo para poder cambiarlo. Esto se debe a que php coge la hora del sistema operativo para utilizarla como etiqueta de tiempo en sus scripts.

WordPress muestra mal la hora

El problema que se nos presenta, es que las entradas programadas de wordpress se publican a una hora incorrecta, la hora mostrada en la página no es la actual o incluso hay una diferencia de minutos o segundos. Puede que pienses que no es un problema demasiado grave pero te voy a hacer un inciso sobre esto.

Imagínate que tienes instalado un plugin de autentificación en dos pasos, y que este es un OTP que se rije en los segundos exactos para darte el código de este minuto. Si la hora no es correcta aunque sea por 30 segundos, el código de validación no te va a coincidir y te puedes quedar fuera del sitio y no poder conectar.

Si bien con simplemente eliminar el plugin volverías a poder acceder a la administración, la idea es que funcione ya que es una seguridad añadida, y para que todo vaya como toca deberás poner en hora wordpress para recibir los códigos OTP correctos.

Esta diferencia horaria no la tiene WordPress configurada en sí, sino que PHP la saca del sistema operativo, es decir, que si en tu instalación del servidor web (en este caso Linux), son las 16:05:33, en php también lo serán, y si cambias la hora también cambia en php, pero, ¿Cual es la hora correcta? por que hay muchas formas de ver la hora actual, pero no significa que en todos los sitios sea la misma.

Cómo saber qué hora es exactamente

Hay una serie de relojes denominados relojes atómicos que son capaces de dar la hora con una milésima de error, por lo que si pudieses sincronizar todos tus dispositivos con estos relojes siempre tendrías la misma hora en cualquiera de ellos… pero ¿Es posible?

Sí que lo es, y no solo para la distribución de linux que usa tu servidor, sino que también puedes sincronizar tu pc con el reloj atómico o incluso sincronizar la hora de android con el reloj atómico.

Si lo haces entonces podrás tener la seguridad de que primero, en todos tus dispositivos tendrás la misma hora por lo que no te llevarás ningún susto por llegar tarde, y por otro lado si usas códigos de tiempo siempre serán los correctos.

Cómo sincronizar Linux con el reloj atómico desde la consola de comandos

Como la idea es hacerlo en un servidor web me voy a centrar directamente en la forma de hacerlo sin tener que reiniciar el equipo, que dependiendo del tu volumen de visitas podría traerte algún que otro dolor de cabeza además de frustrar a todos los usuarios que haya en tu sitio en este momento.

La idea es bastante simple, sería configurar el servicio de sincronización de la hora para que recoja los datos de estos relojes, y esto lo podrás hacer mediante la red ntp.

  • Antes de nada te va a tocar si no lo tienes, instalar los servicios de ntp y ntpdate con
    Centos
    yum install ntp ntpdate ntp-doc
    
    Debian
    apt-get install ntpdate
  • Una vez instalados simplemente tendremos que agregar el dominio correcto que es este al archivo que toca
    server pool.ntp.org
    server pool.ntp.org

    Como puedes ver lo he puesto por duplicado, pero es que te ahorrarás problemas si lo haces así, ya que al ser una red de servidores, si falla el primero, probará con el segundo, y estos redireccionan a todos los servidores de su red, por lo que cada llamada recae sobre uno distinto.

  • Editamos el archivo /etc/ntp.conf y en la parte de los servidores lo dejaremos así
    # You do need to talk to an NTP server or two (or three).
    #server ntp.your-provider.example
    server pool.ntp.org
    server pool.ntp.org
    

    Guarda el archivo y ciérralo. Con esto te aseguras de que al reiniciar el servidor sea el correcto.

  • Ahora, para actualizar la hora sin tener que reiniciar ejecuta la siguiente línea:
    ntpdate -u pool.ntp.org

    y tras esto si en la consola de comandos o terminal pones date verás que te aparece la hora correcta.

Una vez terminados estos pasos, lo ideal es reiniciar apache con el comando

service httpd restart

o

service apache2 restart

Al entrar de nuevo a WordPress verás que la hora aparece correctamente, y si revisas los códigos OTP también te saldrán los correctos, aunque siempre te tienes que asegurar que en el dispositivo que comparas el código tenga la hora correcta también.

¿Te ha dado problemas la hora en WordPress? ¿Cómo lo has solucionado? Comparte y comenta para echarme un cable.

VicHaunter:
    Categorías: Ayuda
Artículo relacionado
Los comentarios de Disqus están cargando....

Como todos, usamos cookies.