PHP (como ya habrás visto) es bastante ****** con los timezone. Para ser exactos, yo me encontré un problema debido a que al instalar Symfony, se queja con un warning de que el default timezone no esta setteado.
El error es el siguiente:
Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. 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. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in...
Después de darle muchas vueltas, me encontré que la causa es que el php.ini que usa la herramienta de linea de comandos de php es diferente del que usa el interprete de apache.
En mi caso al ejecutar:
MacBook:htdocs alatorre$ php composer.phar create-project symfony/framework-standard-edition testProject
funcionaba correctamente, pero al ejecutar comandos de cache:clear y similares, lanzaba el warning.
Para comprobar en linea de comandos que timezone estas usando y que php.ini estas usando, puedes ejecutar los siguientes comandos:
php -i | grep "timezone"
php -i | grep php.ini
Y para resolver el problema es tan sencillo como copiar el php.ini que usas con apache en la ruta que te indica el comando anterior (habitualmente /etc/php.ini
) o realizar una copia del default cambiándole el nombre a php.ini y setteando el valor correcto (en mi caso Europe/Madrid) en la linea date.timezone:
date.timezone = Europe/Madrid
** Ojo! Si la linea esta comentada (; al inicio de la línea), descomentala!
Con esto tendrás un bonito colorido verde cuando ejecutes tus comandos desde Terminal! 😀