Hace un tiempo instalé Apache+MySQL usando MacPorts en Mac OS X. Todo iba bien siempre y cuando estuviera navegando por las páginas usando un navegador, pero en cuanto usé PHP mediante el CLI para ejecutar comandos de Symfony2 comenzaron los problemas. Me decía que no tenía configurada la zona horaria, y yo estaba seguro de haberla configurado en el fichero php.ini
.
$ php app/console doctrine:schema:update --force
[ErrorException] 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 me thods and you are still getting this warning, you most likely misspelled th e timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' ins tead in /Users/enekochan/Documents/Webs/este.es/vendor/monolog/monolog/src/ Monolog/Logger.php line 199
Buscando una solución por internet me di cuenta de que el problema era que estaba ejecutando el php binario que viene con Mac OS X, y en ese no tenía configurada la zona horaria. Se puede ver de donde se lee el fichero php.ini
ejecutando esto:
$ php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc
Loaded Configuration File => (none)
La primera solución que se me ocurrió fue usar la ruta completa al php binario de MacPorts:
$ /opt/local/bin/php app/console doctrine:schema:update --force
$ /opt/local/bin/php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /opt/local/etc/php5
Loaded Configuration File => /opt/local/etc/php5/php.ini
Una mejor solución consiste en añadir la ruta /opt/local/bin
al path del sistema antes que la ruta /usr/bin
. Esto se puede hacer editando el fichero ~/.bash_profile
:
PATH=/opt/local/bin:$PATH;export PATH
Luego hay que cerrar y volver a abrir el terminal o recargar el ~/.bash_profile
:
$ source ~/.bash_profile
Ref: Stackoverflow