Cómo Tener la misma zona horaria en Mysql y PHP

Tener las hora del servidor MySQL y de PHP sincronizadas permite que no tengamos problemas en el análisis de los datos de nuestras aplicaciones y/o sistemas, en especial si uno de los factores de medición dependen de la diferencia de estos tiempos. Acá veremos como tener la misma zona horaria para ambos servicios.

Suele suceder que cuando usamos funciones de Mysql que retornan la hora y además otras por parte de PHP, la hora en ambas no es la misma. Esto es debido a que las configuraciones de ambas no son la misma.

Ambas horas vienen desde la configuración del servidor, pero por defecto ambas están en la zona horaria UTC, así que no importa la hora que tengamos en el servidor, la hora de estos servicios será distinta si no las configuramos de manera adecuada.

A continuación como configurar ambas.

Configurando la zona horaria en el servidor MySQL

Si bien podemos editar directamente el archivo de configuración de MySQL, lo que haremos es crear un archivo distinto que solo posea la definición de la zona horaria. De esta manera evitamos perder esta información por alguna actualización.

  1. Creamos el archivo de configuración en la carpeta conf.d de mysql. Todos los archivos con extensión .conf serán cargados desde aquí.
  2. Definimos el timezone del archivo. Acá puedes usar diferencias horarias, o zonas horarias. Las diferencias horarias son contra UTC que es el : +00:00 .
  3. Reiniciamos el servidor de mysql para actualizar la información.

Si bien puedes usar el editor que quieras, yo usaré  VIM por costumbre.

#vim /etc/mysql/conf.d/date.conf

y en el contenido definimos nuestra zona horaria. En mi caso además de «America/Santiago» podría haber puesto «-03:00».

default_time_zone='America/Santiago'

Ahora reiniciamos el servicio y debería estar funcionando.

# service mysql restart

Para corroborarlo, podemos loguearnos a mysql y ejecutar :

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2016-02-10 12:03:35 |
+---------------------+
1 row in set (0.00 sec)

Configurando la zona horaria en PHP

En este caso si editaremos directamente el archivo php.ini que se encarga de la configuración de php para apache. Si tienes otro servidor simplemente lo haces donde corresponda.

# vim /etc/php5/apache2/php.ini

Buscamos y editamos el siguiente contenido según corresponda :

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "America/Santiago"

Y en este caso reiniciamos el servidor de apache.

# sudo service apache2 restart

Eso sería todo, ahora tu BdD y aplicación web tienen la misma hora :).

¡Mantengamos el contacto!

Me encantaría que te mantuvieras al día con el contenido que estoy generando. Recuerda que no es solo el blog, son las redes sociales, libros, y distintos pódcast 😎.

Hago todo lo posible para no hacer Spam,

Certificados SSL Gratuitos y Validados

Let’s Encrypt is a free, automated, and open certificate authority brought to you by the Internet Security Research Group (ISRG).

Hace ya un par de días como respuesta a un twitt me llegó un mensaje de   Angel Cardenas (@AnglDavd) sobre un sistema que genera y valida certificados ssl para las páginas web. Tomando en consideración que he pagado por muchos de estos certificados, lo cual no es barato,  obviamente la idea de un certificado gratuito  me generó curiosidad.

Leer más

Ubuntu 14.04 LTS + : Cambiar la zona horaria.

Para todos los que quieren cambiar la zona horaria con  CentOS, Ubuntu, Fedora, Debian para sus servidores.

Estaba acostumbrado a usar tzdata pero al parecer en las versiones más «recientes» no viene por defecto. Para poder hacer el cambio de la zona horaria  usaremos el comando timedatectl. Para esto necesitamos tener acceso a la máquina en donde queremos cambiar la configuración, puede ser físicamente o de manera virtual a través de una consola.

Leer más

Bloqueando Facebook con PFSense

Ahora que en la empresa estamos usando telefonía IP, me preocupa mucho más como se está usando el ancho de banda. Dentro de las cosas que estoy bloqueando para uso no autorizado es facebook, después de todo acá se viene a trabajar.

Para los que no saben, PFSense es un sistema de firewall que puedes instalar en un computador, reduciendo los costos de comprar equipos que tienen este propósito.

En este artículo iremos paso a paso como bloquear las redes de facebook usando pfsense.

Leer más

Direcciones IP de Google APPs

En más de una ocasión es posible que queramos aceptar el tráfico que viene de google, ya sea por los correos que envía como por sus aplicaciones. En mi caso para ciertos usuarios de la red estoy bloqueando todo el tráfico excepto a unas aplicaciones web y las aplicaciones de Google.

La lista de direcciones IP actualizadas de Google a Noviembre de 2015 son las siguientes :

  • ip4:64.18.0.0/20
  • ip4:64.233.160.0/19
  • ip4:66.102.0.0/20
  • ip4:66.249.80.0/20
  • ip4:72.14.192.0/18
  • ip4:74.125.0.0/16
  • ip4:108.177.8.0/21
  • ip4:173.194.0.0/16
  • ip4:207.126.144.0/20
  • ip4:209.85.128.0/17
  • ip4:216.58.192.0/19
  • ip4:216.239.32.0/19
  • ip6:2001:4860:4000::/36
  • ip6:2404:6800:4000::/36
  • ip6:2607:f8b0:4000::/36
  • ip6:2800:3f0:4000::/36
  • ip6:2a00:1450:4000::/36
  • ip6:2c0f:fb50:4000::/36

Con esta información es mucho más sencillo poder manejar el tráfico hacia las aplicaciones.

Si quisieramos filtrar solo algunas de las aplicaciones, nos podemos ayudar del comando dig de linux.

ctala@CTMGroupSpA:~$ dig gmail.com

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> gmail.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11676
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;gmail.com.            IN    A

;; ANSWER SECTION:
gmail.com.        73    IN    A    64.233.190.17
gmail.com.        73    IN    A    64.233.190.18
gmail.com.        73    IN    A    64.233.190.83
gmail.com.        73    IN    A    64.233.190.19

;; Query time: 4 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Nov 07 11:00:02 CLT 2015
;; MSG SIZE  rcvd: 102

Y podemos ver en el «Answer Section» Las direcciones Ips que tiene en este caso de ejemplo el servidor de GMail.

¡Mantengamos el contacto!

Me encantaría que te mantuvieras al día con el contenido que estoy generando. Recuerda que no es solo el blog, son las redes sociales, libros, y distintos pódcast 😎.

Hago todo lo posible para no hacer Spam,