Algunos cambios en PHP a partir de la 5.3

php-5-3-en-hostgatorLos que migramos PHP de la versión 5.2.x a cualquiera superior a la 5.3 nos encontramos en el log con algunos errores y alertas que en realidad son muy sencillos de corregir, en este post veremos dos: safe mode y default time zone.

PHP Deprecated:  Directive 'safe_mode' is deprecated in PHP 5.3 and greater

El modo seguro de PHP era un intento de resolver el problema de seguridad en un servidor compartido pero a partir de la versión 5.3 de PHP se dieron cuenta los desarrolladores que es arquitectónicamente incorrecto tratar de resolver este problema a nivel de PHP y como consecuencia han quedado deprecadas estas funciones.

Para corregir este error debemos ir al archivo php.ini y editar la directiva Safe Mode de esta forma:

; Safe Mode
;
safe_mode = Off

PHP Warning:  date(): It is not safe to rely on the system's timezone settings.

El error completo es el siguiente:

You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.

A partir de PHP 5.1.0 (cuando las funciones de fecha/hora fueron reescritas), cada llamada a la función de fecha/hora generaba un E_NOTICE si la zona horaria no es válida o no estaba definida. Ahora a partir de la versión 5.3.0 se lanza un E_WARNING en vez de un E_STRICT.

Parra corregirlo es necesario editar el php.ini y configurar la zona horaria:

[Date]
; Defines the default timezone used by the date functions
date.timezone = "America/Los_Angeles"

Para que estos cambios tengan efecto es necesario luego de editar el php.ini reiniciar nuestro servidor Apache.

Comentarios